Java Double IsFinite Methode

JavaBeginner
Jetzt üben

Einführung

Die Java-Methode isFinite() wird in der Java-Programmiersprache verwendet, um zu überprüfen, ob der übergebene double-Wert ein endlicher Wert ist oder nicht. Wenn der übergebene double-Wert einen endlichen Wert aufweist, wird der boolesche Wert true zurückgegeben, und für NaN- und unendliche Werte wird false zurückgegeben. In diesem Lab werden Sie lernen, wie die Java-Methode isFinite() verwendet wird.

Java-Umgebung einrichten

Wenn Java in Ihrem System noch nicht installiert ist, laden Sie die neueste Version herunter und installieren Sie sie. Überprüfen Sie die Installation, indem Sie den folgenden Befehl ausführen:

java -version

Eine Java-Klasse erstellen

Erstellen Sie in das Verzeichnis ~/project eine neue Java-Klasse namens DoubleIsFiniteDemo.

cd ~/project
touch DoubleIsFiniteDemo.java

Den Java-Code schreiben

In diesem Schritt werden wir den Java-Code schreiben, um mithilfe der isFinite()-Methode zu überprüfen, ob der übergebene double-Wert ein endlicher Wert ist oder nicht. Kopieren Sie den folgenden Code und fügen Sie ihn in DoubleIsFiniteDemo.java ein:

public class DoubleIsFiniteDemo {
    public static void main(String[] args) {
        double d1 = 100.0;
        double d2 = Double.POSITIVE_INFINITY;
        double d3 = Double.NEGATIVE_INFINITY;
        double d4 = Double.NaN;

        boolean b1 = Double.isFinite(d1);
        boolean b2 = Double.isFinite(d2);
        boolean b3 = Double.isFinite(d3);
        boolean b4 = Double.isFinite(d4);

        System.out.println("Is d1 finite? " + b1);
        System.out.println("Is d2 finite? " + b2);
        System.out.println("Is d3 finite? " + b3);
        System.out.println("Is d4 finite? " + b4);
    }
}

Der obige Code deklariert vier double-Variablen d1, d2, d3 und d4 mit jeweils einem endlichen, einem positiven unendlichen, einem negativen unendlichen und einem NaN-Wert. Anschließend verwendet er die isFinite()-Methode, um zu überprüfen, ob jede der Variablen endlich ist oder nicht.

Den Java-Code kompilieren und ausführen

Kompilieren Sie den Code mit dem folgenden Befehl:

javac DoubleIsFiniteDemo.java

Nach der Kompilierung können Sie den Code mit dem folgenden Befehl ausführen:

java DoubleIsFiniteDemo

Die Ausgabe des Programms sollte wie folgt sein:

Is d1 finite? true
Is d2 finite? false
Is d3 finite? false
Is d4 finite? false

Das Programm anpassen

In diesem Schritt können Sie das Programm anpassen, um verschiedene Werte zu testen. Öffnen Sie DoubleIsFiniteDemo.java in Ihrem bevorzugten Texteditor und ändern Sie die den double-Variablen zugewiesenen Werte. Beispielsweise:

public class DoubleIsFiniteDemo {
    public static void main(String[] args) {
        double d1 = 1.23;
        double d2 = 4.56;
        double d3 = Double.NEGATIVE_INFINITY;
        double d4 = Double.NaN;

        boolean b1 = Double.isFinite(d1);
        boolean b2 = Double.isFinite(d2);
        boolean b3 = Double.isFinite(d3);
        boolean b4 = Double.isFinite(d4);

        if (b1) {
            System.out.println("d1 ist ein endlicher double-Wert.");
        } else {
            System.out.println("d1 ist kein endlicher double-Wert.");
        }

        if (b2) {
            System.out.println("d2 ist ein endlicher double-Wert.");
        } else {
            System.out.println("d2 ist kein endlicher double-Wert.");
        }

        if (b3) {
            System.out.println("d3 ist ein endlicher double-Wert.");
        } else {
            System.out.println("d3 ist kein endlicher double-Wert.");
        }

        if (b4) {
            System.out.println("d4 ist ein endlicher double-Wert.");
        } else {
            System.out.println("d4 ist kein endlicher double-Wert.");
        }
    }
}

Den Java-Code erneut kompilieren und ausführen

Kompilieren Sie den Code erneut mit dem folgenden Befehl:

javac DoubleIsFiniteDemo.java

Nach der Kompilierung können Sie das angepasste Programm mit dem folgenden Befehl ausführen:

java DoubleIsFiniteDemo

Je nachdem, welche Werte Sie eingegeben haben, wird das Programm das Ergebnis entsprechend ausgeben.

Die isFinite()-Methode in einer benutzerdefinierten Methode verwenden

In diesem Schritt werden wir eine benutzerdefinierte Methode namens printIsFinite() erstellen, die einen double-Wert als Eingabe nimmt und mithilfe der isFinite()-Methode ausgibt, ob er endlich ist oder nicht.

Fügen Sie die folgende Methode innerhalb der DoubleIsFiniteDemo-Klasse hinzu:

public static void printIsFinite(double d) {
    if (Double.isFinite(d)) {
        System.out.println(d + " ist ein endlicher double-Wert.");
    } else {
        System.out.println(d + " ist kein endlicher double-Wert.");
    }
}

Ändern Sie dann die main()-Methode wie folgt:

public static void main(String[] args) {
    double d1 = 1.23;
    double d2 = 4.56;
    double d3 = Double.NEGATIVE_INFINITY;
    double d4 = Double.NaN;

    printIsFinite(d1);
    printIsFinite(d2);
    printIsFinite(d3);
    printIsFinite(d4);
}

Die main()-Methode übergibt jede der vier double-Variablen an die printIsFinite()-Methode, die dann überprüft, ob der Wert endlich ist oder nicht und gibt das Ergebnis entsprechend aus.

Den Java-Code erneut kompilieren und ausführen

Kompilieren Sie den Code erneut mit dem folgenden Befehl:

javac DoubleIsFiniteDemo.java

Nach der Kompilierung können Sie das Programm mit dem folgenden Befehl ausführen:

java DoubleIsFiniteDemo

Die Ausgabe des Programms sollte wie folgt sein:

1.23 ist ein endlicher double-Wert.
4.56 ist ein endlicher double-Wert.
-Infinity ist kein endlicher double-Wert.
NaN ist kein endlicher double-Wert.

Den Java-Code mit Grenzwerten testen

In diesem Schritt werden wir den Java-Code mit Grenzwerten testen, um zu sehen, wie die isFinite()-Methode funktioniert.

Ändern Sie die main()-Methode wie folgt:

public static void main(String[] args) {
    double d1 = Double.MIN_VALUE;
    double d2 = Double.MAX_VALUE;
    double d3 = Double.POSITIVE_INFINITY;
    double d4 = Double.NaN;

    printIsFinite(d1);
    printIsFinite(d2);
    printIsFinite(d3);
    printIsFinite(d4);
}

Die main()-Methode verwendet die Konstanten MIN_VALUE und MAX_VALUE der Double-Klasse, um den kleinsten und größten endlichen double-Wert jeweils an d1 und d2 zuzuweisen, und weist den positiven Unendlichkeits- und NaN-Wert jeweils an d3 und d4 zu.

Kompilieren und führen Sie den Java-Code erneut mit den folgenden Befehlen aus:

javac DoubleIsFiniteDemo.java
java DoubleIsFiniteDemo

Die Ausgabe des Programms sollte wie folgt sein:

4.9E-324 ist ein endlicher double-Wert.
1.7976931348623157E308 ist ein endlicher double-Wert.
Infinity ist kein endlicher double-Wert.
NaN ist kein endlicher double-Wert.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie die Java-isFinite()-Methode verwenden, um zu überprüfen, ob ein double-Wert ein endlicher Wert ist oder nicht. Sie haben auch gelernt, wie Sie das Programm anpassen, um verschiedene Werte zu testen, wie Sie die isFinite()-Methode in einer benutzerdefinierten Methode verwenden und wie Sie den Java-Code mit Grenzwerten testen.