float f = (float)'a';
if(f < 0){
}
else if(f == 0){
}
else if(f > 0){
}
else{
printf("NaN\n");
}
f
不会大于/等于/小于0
如果它是一个NaN
.
但如何生产这样的f
首先?
我尝试了各种方法来制作NaN
,但没有一个工作..
使用浮点数,0.0 / 0.0
不是“除以零”错误;它导致NaN
.
这个 C 程序打印-nan
:
#include <stdio.h>
int main()
{
float x = 0.0 / 0.0;
printf("%f\n", x);
return 0;
}
就什么而言NaN
在计算机看来,两个“无效”数字是为“信号”和“安静”NaN 保留的(类似于为正无穷大和负无穷大保留的两个无效数字)。这维基百科条目 http://en.wikipedia.org/wiki/IEEE_754-2008#Formats有关 MaN 如何表示为 IEEE 浮点数的更多详细信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)