Possible duplicate:
Why does Double.NaN == Double.NaN return false?
NaN = "NaN" means "not a number". Nan is created if the floating point operation has some input parameters that cause the operation to get some undefined result. For example, 0.0 divided by 0.0 is arithmetically undefined. Taking the square root of a negative number is also undefined.
I tried to use NaN Constant in Java
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);
}
}
Output
false
x=NaN
y=NaN
So why is x == y false?
source
share