爲什麼這個比較會給我'錯誤'?我看了看源的Float.NaN被定義爲Float.NaN == Float.NaN
/**
* A constant holding a Not-a-Number (NaN) value of type
* <code>float</code>. It is equivalent to the value returned by
* <code>Float.intBitsToFloat(0x7fc00000)</code>.
*/
public static final float NaN = 0.0f/0.0f;
編輯:奇怪的是,如果我這樣做:
System.out.println("FC " + (Float.compare(Float.NaN, Float.NaN)));
它給了我0
。所以Float.compare()
確實認爲NaN 是等於自己!
除'!='比較之外,它們返回'true'。 – 2012-02-18 13:40:09
你可以用這種方式測試NaN!如果'x == x'爲false,那麼x是NaN。 – 2012-02-18 13:41:19
@Daniel Ups對不起,您好!簡化得太多了。 – Voo 2012-02-18 13:45:03