Java Double IsFinite Метод

JavaJavaBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Метод Java isFinite() используется в Java для проверки, является ли переданное значение типа double конечным значением или нет. Возвращает логическое значение true, если переданное значение типа double имеет конечное значение, и возвращает false для значений NaN и бесконечности. В этом практическом занятии вы узнаете, как использовать метод Java isFinite().

Настройка среды Java

Если вы еще не установили Java в своей системе, загрузите последнюю версию и установите ее. Проверьте установку, выполнив следующую команду:

java -version

Создайте класс Java

Создайте новый класс Java под названием DoubleIsFiniteDemo в каталоге ~/project.

cd ~/project
touch DoubleIsFiniteDemo.java

Напишите код на Java

В этом шаге мы напишем код на Java с использованием метода isFinite(), чтобы проверить, является ли переданное значение типа double конечным значением или нет. Скопируйте и вставьте следующий код в DoubleIsFiniteDemo.java:

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);
    }
}

Вышеприведенный код объявляет четыре переменные типа double d1, d2, d3 и d4 с конечными значением, положительной бесконечностью, отрицательной бесконечностью и значением NaN соответственно. Затем он использует метод isFinite(), чтобы проверить, является ли каждая из переменных конечной или нет.

Скомпилируйте и запустите код на Java

Скомпилируйте код с использованием следующей команды:

javac DoubleIsFiniteDemo.java

После компиляции вы можете запустить код с использованием следующей команды:

java DoubleIsFiniteDemo

Результат выполнения программы должен быть таким:

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

Настройте программу

В этом шаге вы можете настроить программу для тестирования различных значений. Откройте DoubleIsFiniteDemo.java в своем любимом текстовом редакторе и измените значения, присвоенные переменным типа double. Например:

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 is a finite double value.");
        } else {
            System.out.println("d1 is not a finite double value.");
        }

        if (b2) {
            System.out.println("d2 is a finite double value.");
        } else {
            System.out.println("d2 is not a finite double value.");
        }

        if (b3) {
            System.out.println("d3 is a finite double value.");
        } else {
            System.out.println("d3 is not a finite double value.");
        }

        if (b4) {
            System.out.println("d4 is a finite double value.");
        } else {
            System.out.println("d4 is not a finite double value.");
        }
    }
}

Скомпилируйте и запустите код на Java снова

Скомпилируйте код снова с использованием следующей команды:

javac DoubleIsFiniteDemo.java

После компиляции вы можете запустить настроенную программу с использованием следующей команды:

java DoubleIsFiniteDemo

В зависимости от введенных вами значений программа будет выводить соответствующий результат.

Используйте метод isFinite() в методе, определенном пользователем

В этом шаге мы создадим метод, определенный пользователем, под названием printIsFinite(), который принимает значение типа double в качестве входных данных и выводит, является ли оно конечным, с использованием метода isFinite().

Добавьте следующий метод внутри класса DoubleIsFiniteDemo:

public static void printIsFinite(double d) {
    if (Double.isFinite(d)) {
        System.out.println(d + " is a finite double value.");
    } else {
        System.out.println(d + " is not a finite double value.");
    }
}

Затем измените метод main() следующим образом:

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);
}

Главный метод передает каждую из четырех переменных типа double в метод printIsFinite(), который затем проверяет, является ли значение конечным, и выводит соответствующий результат.

Скомпилируйте и запустите код на Java снова

Скомпилируйте код снова с использованием следующей команды:

javac DoubleIsFiniteDemo.java

После компиляции вы можете запустить программу с использованием следующей команды:

java DoubleIsFiniteDemo

Результат выполнения программы должен быть таким:

1.23 is a finite double value.
4.56 is a finite double value.
-Infinity is not a finite double value.
NaN is not a finite double value.

Протестируйте код на Java с граничными значениями

В этом шаге мы протестируем код на Java с граничными значениями, чтобы увидеть, как работает метод isFinite().

Измените метод main() следующим образом:

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);
}

Главный метод использует константы MIN_VALUE и MAX_VALUE класса Double, чтобы присвоить наименьшее и наибольшее конечные значения типа double соответственно переменным d1 и d2, а значения положительной бесконечности и NaN соответственно переменным d3 и d4.

Скомпилируйте и запустите код на Java с использованием следующих команд:

javac DoubleIsFiniteDemo.java
java DoubleIsFiniteDemo

Результат выполнения программы должен быть таким:

4.9E-324 is a finite double value.
1.7976931348623157E308 is a finite double value.
Infinity is not a finite double value.
NaN is not a finite double value.

Резюме

В этом практическом занятии вы узнали, как использовать метод isFinite() на Java для проверки, является ли значение типа double конечным. Также вы узнали, как настраивать программу для тестирования различных значений, как использовать метод isFinite() в методе, определенном пользователем, и как протестировать код на Java с граничными значениями.