【发布时间】:2013-02-23 16:01:18
【问题描述】:
NAN 值表示非数字,IND 值表示不确定数字。但这两者有什么区别。我们如何在 c++ 中表示两者。
【问题讨论】:
-
IND?还是INF? INF 是“无限”的标准。
NAN 值表示非数字,IND 值表示不确定数字。但这两者有什么区别。我们如何在 c++ 中表示两者。
【问题讨论】:
但这两者有什么区别。
它们是同一个东西。一些平台选择将非数字显示为NaN 的某个变体,而其他平台选择将其显示为IND 的某个变体。
我们如何在 c++ 中同时表示两者。
std::numeric_limits<double>::quiet_NaN()(或float 或long double,如果您愿意的话)。
【讨论】:
如果您的操作生成的正数大于双精度数,则该操作将在 Windows 上返回 1.#INF,在 Linux 上返回 inf
某些运算没有数学意义,例如取负数的平方根。sqrt(-1.0) 和 log(-1.0) 都会返回 NaN,即“非数字”的“数字”的通用术语”。
Windows 将 NaN 显示为 -1.#IND(“IND”表示“不确定”),而 Linux 显示 nan。其他会返回 NaN 的操作包括 0/0、0*∞ 和 ∞/∞。
【讨论】:
nan(ind)。
-nan(ind)。