【发布时间】:2011-12-09 16:37:11
【问题描述】:
函数的目的是什么?
bool whatIsIt(double n)
{
return n == n;
}
它可以用来检查 n 中的每一位吗?
我对此表示怀疑。
感谢任何 cmets。
【问题讨论】:
-
严格来说,标准没有说。这取决于浮点数学在您的平台上的运行方式。
-
我会说它检查了 n 是一个数字与例如 NaN
-
这种布尔函数的技术术语是“重言式”;)顺便说一句:“不是数字”是一个合法的 IEEE 浮点值......它不等于任何其他浮点点值 - 包括它自己。
-
@paulsm4 :通常是正确的,但浮点类型是“特殊的”,所以在这种情况下它不是正确的。
-
@Billy :仅这一点就使它们总是很特别,不是吗? ;-]
标签: c++ c operators bit-manipulation equality