函数返回list
,其中包含float
个值。如果我绘制此列表,我会看到某些float
值相等-1.#IND
。我还检查了那些-1.#IND
值的类型。它们也是float
类型。
但是,我如何理解这些-1.#IND
值?他们代表什么或代表什么?
答案 0 :(得分: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