1

一个函数返回一个list包含值的float值。如果我绘制这个列表,我会看到一些float值是 equal -1.#IND。我还检查了这些-1.#IND值的类型。它们也是float类型。但是我怎么能理解这个-1.#IND值呢?它们代表什么或代表什么?

4

1 回答 1

3

-1.#IND表示不确定,即没有解的浮点方程的结果。在其他平台上,你会得到NaN,意思是“不是数字”,-1.#IND是特定于 Windows 的。在 Linux 上的 Python 2.5 上,我得到:

>>> 1e300 * 1e300 * 0
-nan

您只能在 Windows 平台上的 python 2.5 及之前版本上找到它。该float()代码在python 2.6中得到了改进,并始终float('nan')用于此类结果;主要是因为没有办法再次变成一个实际的1.#INF实例:-1.#INDfloat()

>>> repr(inf)
'1.#INF'
>>> float(_)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): 1.#INF
>>> repr(nan)
'-1.#IND'
>>> float(_)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): -1.#IND

在 2.6 及更高版本上,这一切都已清理并保持一致:

>>> 1e300 * 1e300 * 0
nan
>>> 1e300 * 1e300
inf
>>> 1e300 * 1e300 * -1
-inf
于 2013-01-14T16:42:33.910 回答