Beispiele für das Auftreten von NaN sind Divisionen von Null durch Null,
das Ergebnis von Math.sqrt(-1) oder auch die Addition von NEGATIVE_INFINITY und POSITIVE_INFINITY,
wie die folgenden Anweisungen zeigen:
float f;
f = Float.NEGATIVE_INFINITY + Float.POSITIVE_INFINITY;
System.out.println(f == Float.NaN);
System.out.println(Float.isNaN(f));
System.out.println(Float.compare(f, Float.NaN));
System.out.println(Float.toString(f));
Diese Anweisungen liefern die Ausgabe
false
true
0
NaN
Hierbei ist zu beachten, dass zuerst false ausgegeben wird, obwohl
die Variable f den Wert NaN hat! Die Ursache liegt im Ergebnis
des Vergleichs f == float.NaN, der wie bereits gesagt, immer false ist. Die Methoden isNaN() und compare() liefern dagegen das intuitiv erwartete Ergebnis.