函数返回一个包含float
值的列表
。如果我绘制此列表,我会发现一些 float
值等于 -1.#IND
。我还检查了这些 -1.#IND
值的类型。它们也是float
类型。
但我如何理解这个 -1.#IND
值?它们代表什么或代表什么?
最佳答案
-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
关于python - 浮点值等于-1.#IND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14321866/