NaN
There is a special floating point number called NaN
, which stands for "Not a Number."
You generally only encounter NaN
as the result of doing something silly like dividing zero by zero.
double nan = 0.0 / 0.0;
NaN
is not equal to itself.
void main() {
double nan = 0.0 / 0.0;
// will be false
boolean equalToItself = nan == nan;
System.out.println(equalToItself);
}
NaN
is not greater than itself.
void main() {
double nan = 0.0 / 0.0;
// will be false
boolean greaterThanItself = nan > nan;
System.out.println(greaterThanItself);
}
NaN
is not less than itself.
void main() {
double nan = 0.0 / 0.0;
// will be false
boolean lessThanItself = nan < nan;
System.out.println(lessThanItself);
}
NaN
is not greater than, less than, or equal to any number.
void main() {
double nan = 0.0 / 0.0;
// will all be false
System.out.println(nan < 5);
System.out.println(nan > 5);
System.out.println(nan == 5);
}
None of this is usually useful, but it is fun to know about.