我有一种情况,除以 0.0 或除以 -0.0 是合理的,我希望分别看到 +Inf 和 -Inf 作为结果。似乎 Python 喜欢抛出一个
ZeroDivisionError: float division by zero
在任一情况下。显然,我想我可以简单地用 0.0 的测试来包装它。但是,我找不到区分 +0.0 和 -0.0 的方法。(仅供参考,您可以通过键入或通过常见计算(例如 -1.0 * 0.0)轻松获得 -0.0)。
IEEE 很好地处理了这一切,但 Python 似乎煞费苦心地隐藏了经过深思熟虑的 IEEE 行为。事实上,0.0 == -0.0 实际上是一个 IEEE 特性,因此 Python 的行为严重破坏了事物。它在 C、Java、Tcl 甚至 JavaScript 中运行良好。
建议?