Почему это сравнение дает мне "ложь"? Я посмотрел на источник и 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;
EDIT: удивительно, если я это сделаю:
System.out.println("FC " + (Float.compare(Float.NaN, Float.NaN)));
он дает мне 0
. Итак, Float.compare()
считает, что NaN равно себе!