Verwendung von Double.isNaN() für die Prüfung
In diesem Schritt erfahren Sie, wie Sie in Java mithilfe der Methode Double.isNaN()
prüfen können, ob eine Gleitkommazahl "Not a Number" (NaN) ist.
Gleitkommazahlen in Computern können manchmal einen speziellen Wert namens NaN ergeben. Dies geschieht, wenn das Ergebnis einer Berechnung undefiniert ist oder nicht als Standardzahl dargestellt werden kann. Beispielsweise kann die Division von Null durch Null oder die Wurzel aus einer negativen Zahl zu NaN führen.
Es ist wichtig, in Ihren Programmen NaN-Werte erkennen zu können, da sie sich anders verhalten als normale Zahlen. Beispielsweise ergibt der Vergleich eines NaN-Werts mit einer anderen Zahl (auch einem anderen NaN) mit Standardvergleichsoperatoren (==
, <
, >
) immer false
.
Java bietet eine spezielle Methode zur Prüfung auf NaN: Double.isNaN()
. Diese Methode nimmt einen double
-Wert als Eingabe und gibt true
zurück, wenn der Wert NaN ist, und false
sonst.
Erstellen wir ein einfaches Java-Programm, um zu zeigen, wie man Double.isNaN()
verwendet.
-
Öffnen Sie die Datei HelloJava.java
im WebIDE-Editor.
-
Ersetzen Sie den vorhandenen Code durch folgenden:
public class CheckNaN {
public static void main(String[] args) {
double result1 = 0.0 / 0.0; // This will result in NaN
double result2 = 10.0 / 2.0; // This is a regular number
System.out.println("Is result1 NaN? " + Double.isNaN(result1));
System.out.println("Is result2 NaN? " + Double.isNaN(result2));
}
}
In diesem Code:
- Wir deklarieren zwei
double
-Variablen, result1
und result2
.
result1
wird das Ergebnis von 0.0 / 0.0
zugewiesen, was eine unbestimmte Form ist und NaN erzeugen wird.
result2
wird das Ergebnis von 10.0 / 2.0
zugewiesen, was eine Standardzahl (5.0) ist.
- Wir verwenden dann
Double.isNaN()
, um zu prüfen, ob result1
und result2
NaN sind, und geben die Ergebnisse aus.
-
Speichern Sie die Datei (Strg+S oder Cmd+S).
-
Jetzt müssen wir dieses neue Programm kompilieren. Da wir den Klassennamen in CheckNaN
geändert haben, müssen wir CheckNaN.java
kompilieren. Öffnen Sie das Terminal und führen Sie aus:
javac CheckNaN.java
Wenn die Kompilierung erfolgreich ist, sollten Sie keine Ausgabe sehen.
-
Führen Sie schließlich das kompilierte Programm aus:
java CheckNaN
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Is result1 NaN? true
Is result2 NaN? false
Diese Ausgabe bestätigt, dass Double.isNaN()
result1
korrekt als NaN und result2
als normale Zahl identifiziert hat.
Die Verwendung von Double.isNaN()
ist die richtige und zuverlässige Methode, um in Java auf NaN-Werte zu prüfen. Das Verlassen auf einen direkten Vergleich (== Double.NaN
) wird nicht empfohlen, da, wie bereits erwähnt, NaN == NaN
zu false
auswertet.