这其实并不是一个问题,而是Python实现的浮点运算中有趣的现象。
有人能解释一下以下行为吗?
>>> 1/1e-308
1e+308
>>> 1/1e-309
inf
>>> 1/1e-323
inf
>>> 1/1e-324
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: float division by zero
似乎将1除以接近于零的数会得到“inf”,如果更接近“ZeroDivisionError”就会抛出异常。这似乎是一种奇怪的行为。
在Python 2.x/3.x中输出相同结果。
编辑:我主要的问题是为什么在某些范围内我们会得到“inf”,而不是
ZeroDivisionError
,假设Python似乎将1e-309视为零。