Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
NAN 值表示非数字,IND 值表示不确定数字。但这两者有什么区别。我们如何在 c++ 中表示两者。
但这两者有什么区别。
他们都是一回事。一些平台选择将非数字显示为 的某个变体NaN,而其他平台选择将其显示为 的某个变体IND。
NaN
IND
我们如何在 c++ 中表示两者。
std::numeric_limits<double>::quiet_NaN()(或float或long double,如果您愿意)。
std::numeric_limits<double>::quiet_NaN()
float
long double
如果您的操作生成的正数大于双精度数,则该操作将1.#INF在 Windows 上返回或在 Linux 上返回 inf
1.#INF
某些运算没有数学意义,例如取负数的平方根。两者都将返回 NaN sqrt(-1.0),log(-1.0)即“非数字”的“数字”的通用术语。
sqrt(-1.0)
log(-1.0)
Windows 将 NaN 显示为 -1.#IND(“IND”表示“不确定”),而 Linux 显示nan. 其他会返回 a 的操作NaN包括 0/0、0*∞ 和 ∞/∞。
-1.#IND
nan
参考链接1
参考链接2