2013-03-08 485 views
5

NAN值是指不是号码,IND值是指不确定号码。但是这两者之间有什么区别。我们如何在C++中表示两者。IND和NAN号码有什么区别

+0

IND?还是INF? INF是'无限'的标准。 – 2013-03-08 07:03:32

回答

5

但正是这两者之间的区别。

它们都是相同的东西。某些平台选择显示非数字作为NaN的某些变体,而其他平台则选择将其显示为​​的某些变体。

我们如何在C++中表示两者。

std::numeric_limits<double>::quiet_NaN()(或floatlong double,如果你喜欢)。

+1

显然,它们本身并不相同。在Microsoft平台上,IND似乎是NaN的特例。具体而言,对于IND,指数为0xFF,尾数为0x400000。任何其他非零尾数给出一个NaN。 – ysap 2017-05-13 14:48:19

2

如果你的操作会产生比可以被存储在一个双重较大的正数,该操作将在Windows或INF返回1.#INF在Linux上

某些操作不作数学意义上,如采取正方形一个负数的根。两个sqrt(-1.0)log(-1.0)都会返回一个NaN,这是一个“不是数字”的“数字”的通用术语。

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

Refernce Link1

Refernce Link2

+1

这不是Windows vs Linux,它是编译器的标准库,它规定了应该如何显示NaN。 – 2013-03-08 07:30:53

+0

“某些操作没有数学意义” 这些操作确实具有数学意义,但结果不能存储在浮点数中,即sqrt(-1.0)是i,不能是虚数存储在一个浮点数 – 2017-05-17 13:08:25