一个函数返回一个list
包含值的float
值。如果我绘制这个列表,我会看到一些float
值是 equal -1.#IND
。我还检查了这些-1.#IND
值的类型。它们也是float
类型。但是我怎么能理解这个-1.#IND
值呢?它们代表什么或代表什么?
问问题
964 次
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.#IND
float()
>>> 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 回答