NAN值表示Not A Number,IND值表示Indeterminate number。但这两者之间有什么区别。我们怎样才能在c ++中代表两者。
答案 0 :(得分:5)
但这两者之间有什么区别。
他们都是一回事。某些平台选择将非数字显示为NaN
的某些变体,而其他平台选择将其显示为IND
的某些变体。
我们如何在c ++中代表两者。
std::numeric_limits<double>::quiet_NaN()
(或float
或long double
,如果您愿意的话。)
答案 1 :(得分:2)
如果您的操作生成的正数大于可以存储在double中的正数,则操作将在Windows上返回1.#INF
或在Linux上返回inf
某些操作没有数学意义,例如取负数的平方根。sqrt(-1.0)
和log(-1.0)
将返回NaN,即“数字”的通用术语“不是数字”。
Windows显示NaN为-1.#IND
(“IND”表示“不确定”),而Linux显示nan
。返回NaN
的其他操作包括0 / 0,0 *∞和∞/∞。