【发布时间】:2011-11-04 22:57:03
【问题描述】:
float f = (float)'a';
if(f < 0){
}
else if(f == 0){
}
else if(f > 0){
}
else{
printf("NaN\n");
}
f 不会大于/等于/小于0,如果它是NaN。
但是首先如何产生这样的f?
我尝试了各种方法来生成NaN,但都没有奏效..
【问题讨论】:
-
你能用一点 C++ 吗? C++ 有 std::numeric_limits 东西,其中包括安静和信号 NaN 的常量。另外,您确定您的系统正确支持 NaN 吗?因为当你说 0.0/0.0 不是 NaN 时,我真的很惊讶,而且我开始怀疑你的库没有按照你想象的方式设置。
-
这里我展示了各种 NaN 在通过不同方式生成时的样子:stackoverflow.com/questions/18118408/… C++ 版本:stackoverflow.com/questions/16691207/c-c-nan-constant-literal
标签: c floating-point nan