float temp = Float.NaN;
if(temp == Float.NaN){
System.out.println( "ok ");
}
System.out.println( "end ");
float temp2 = Float.POSITIVE_INFINITY;
if(temp2 == Float.POSITIVE_INFINITY){
System.out.println( "ok ");
}
System.out.println( "end ");
输出结果为:
end
ok
end
当然,用Float.IsNaN 结果不同。但我想知道为什么?谢谢各位
------解决方案--------------------
static public boolean isNaN(float v) {
return (v != v);
}
这个就是isNaN的实现,可见NaN不等于任何东西,包括它自身