关于Float.NaN,该如何解决

关于Float.NaNfloattempFloat.NaNif(tempFloat.NaN){System.out.println( ok )}System.out.println

关于Float.NaN
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不等于任何东西,包括它自身