浮点值等于-1。#IND

时间:2013-01-14 15:54:20

标签: python floating-point python-2.5

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

1 个答案:

答案 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