IND和NAN号有啥区别

Posted

技术标签:

【中文标题】IND和NAN号有啥区别【英文标题】:What is the difference between IND and NAN numbersIND和NAN号有什么区别 【发布时间】:2013-02-23 16:01:18 【问题描述】:

NAN 值表示非数字,IND 值表示不确定数字。但这两者有什么区别。我们如何在 c++ 中表示两者。

【问题讨论】:

IND?还是INF? INF 是“无限”的标准。 【参考方案1】:

但这两者有什么区别。

它们是同一个东西。一些平台选择将非数字显示为NaN 的某个变体,而其他平台选择将其显示为IND 的某个变体。

我们如何在 c++ 中同时表示两者。

std::numeric_limits<double>::quiet_NaN()(或floatlong double,如果您愿意的话)。

【讨论】:

显然,它们本身并不相同。在 Microsoft 平台上,IND 似乎是 NaN 的一个特例。具体来说,对于IND,指数为0xFF,尾数为0x400000。任何其他非零尾数都会给出 NaN。【参考方案2】:

如果您的操作生成的正数大于双精度数,则该操作将在 Windows 上返回 1.#INF,在 Linux 上返回 inf

某些运算没有数学意义,例如取负数的平方根。sqrt(-1.0)log(-1.0) 都会返回 NaN,即“非数字”的“数字”的通用术语”。

Windows 将 NaN 显示为 -1.#IND(“IND”表示“不确定”),而 Linux 显示 nan。其他会返回 NaN 的操作包括 0/0、0*∞ 和 ∞/∞。

Refernce Link1

Refernce Link2

【讨论】:

不是 Windows 与 Linux,而是编译器的标准库决定了 NaN 的显示方式。 "某些运算没有数学意义" 运算确实有数学意义,但结果不能存储为浮点数,即 sqrt(-1.0) 是 i,一个虚数不能存储在浮点数中的数字 仅供参考:msvc 为 C 生成的程序将 NaN 显示为 nan(ind) -nan(ind)

以上是关于IND和NAN号有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

(NaN != NaN) 和 (NaN !== NaN) 有啥区别?

NaN 和 None 有啥区别?

POST 和 GET 有啥区别? [复制]

iBeacon 广告包 - 有啥区别?

小程序和H5app公众号有什么区别?

微信公众号订阅号和服务号有什么区别?