gpt4 book ai didi

python - 如何让 Python 除以 -0.0 和 0.0 分别得到 -Inf 和 Inf?

转载 作者:太空狗 更新时间:2023-10-29 17:56:17 29 4
gpt4 key购买 nike

在我的情况下,除以 0.0 或 -0.0 是合理的,我希望分别看到 +Inf 和 -Inf 作为结果。看来 Python 喜欢抛出一个

ZeroDivisionError: float division by zero

无论哪种情况。显然,我想我可以简单地用 0.0.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 中运行良好。

建议?

最佳答案

from math import copysign

def divide(numerator, denominator):
if denominator == 0.0:
return copysign(float('inf'), denominator)
return numerator / denominator

>>> divide(1, -0.0)
-inf
>>> divide(1, 0)
inf

关于python - 如何让 Python 除以 -0.0 和 0.0 分别得到 -Inf 和 Inf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16226633/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com