Powiel możliwe:
Why does Double.NaN==Double.NaN return false?NaN Stała Magia w Javie
NaN = "NaN" oznacza "Not a Number". "Nan" jest produkowane, jeśli operacja zmiennoprzecinkowa ma pewne parametry wejściowe, które powodują, że operacja daje pewien niezdefiniowany wynik. Na przykład 0,0 podzielone przez 0,0 jest arytmetycznie niezdefiniowane. Przyjmowanie pierwiastka kwadratowego z liczby ujemnej jest również niezdefiniowane.
starałem się używać NaN Stała w Javie
public class NaNDemo {
public static void main(String s[]) {
double x = Double.NaN;
double y = Double.NaN;
System.out.println((x == y));
System.out.println("x=" + x);
System.out.println("y=" + y);
}
}
Wyjście
false
x=NaN
y=NaN
Więc dlaczego x == y jest fałszywy?
Spójrz na http://stackoverflow.com/a/471314/751634 –
Lub bardziej bezpośrednio, http://stackoverflow.com/questions/8819738/why-does-double-nan-double-nan-return -fałszywy. – AerandiR
Dzięki @ jenoosia, to właśnie szukałem –