Java Double isFinite 메서드

JavaBeginner
지금 연습하기

소개

Java 의 isFinite() 메서드는 Java 언어에서 전달된 double 값이 유한한 값인지 확인하는 데 사용됩니다. 전달된 double 값이 유한한 값을 가지면 boolean 값 true를 반환하고, NaN 및 무한 값의 경우 false를 반환합니다. 이 랩에서는 Java isFinite() 메서드를 사용하는 방법을 배우게 됩니다.

Java 환경 설정

아직 시스템에 Java 를 설치하지 않았다면, 최신 버전을 다운로드하여 설치하십시오. 다음 명령을 실행하여 설치를 확인합니다.

java -version

Java 클래스 생성

~/project 디렉토리에 DoubleIsFiniteDemo라는 새로운 Java 클래스를 생성합니다.

cd ~/project
touch DoubleIsFiniteDemo.java

Java 코드 작성

이 단계에서는 isFinite() 메서드를 사용하여 전달된 double 값이 유한 값인지 확인하는 Java 코드를 작성합니다. 다음 코드를 복사하여 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);
    }
}

위 코드는 유한 값, 양의 무한대, 음의 무한대, NaN 값을 각각 갖는 네 개의 double 변수 d1, d2, d3, d4를 선언합니다. 그런 다음, 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() 메서드 사용

이 단계에서는 double 값을 입력으로 받아 isFinite() 메서드를 사용하여 유한한지 여부를 출력하는 printIsFinite()라는 사용자 정의 메서드를 생성합니다.

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

main 메서드는 네 개의 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 코드 테스트 방법

이 단계에서는 isFinite() 메서드가 어떻게 작동하는지 확인하기 위해 경계값으로 Java 코드를 테스트합니다.

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

main 메서드는 Double 클래스의 MIN_VALUEMAX_VALUE 상수를 사용하여 각각 가장 작은 유한 double 값과 가장 큰 유한 double 값을 d1d2에 할당하고, 양의 무한대와 NaN 값을 각각 d3d4에 할당합니다.

아래 명령을 사용하여 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.

요약

이 랩에서는 Java isFinite() 메서드를 사용하여 double 값이 유한 값인지 여부를 확인하는 방법을 배웠습니다. 또한 다양한 값을 테스트하도록 프로그램을 사용자 정의하는 방법, 사용자 정의 메서드에서 isFinite() 메서드를 사용하는 방법, 그리고 경계값으로 Java 코드를 테스트하는 방법을 배웠습니다.