python - 浮点值等于-1.#IND

标签 python floating-point python-2.5

函数返回一个包含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/

相关文章:

python - 在 python 中散列字符串会返回错误的结果?

c++ - 如何解释 32 位浮点 wav 数据

SQLite 完整性错误 : UNIQUE constraint failed:

python - 在 Windows 上运行导入 xmlrpclib 的 Python 脚本?

Python:比较两个列表并获得带符号的最大值和最小值

python - 如何在 RStudio 环境窗口中查看在 RMardown session 中创建的 Python 对象?

floating-point - 计算指数位

转换为 int 和浮点错误?

python - 名称错误 : name 'buffer' is not defined with Ant Based framework batch file

python - 从后面 3 个字符后添加 ", "