Contents
Infinity 와 NaN(Not a Number) - in Java
   Nov 9, 2022     2 min read

Java의 무한대(Infinity) 개념과 NaN(Not a Number)를 알아보자.

public class Calculator {
    public static void main(String[] args) {
        Calculator calc = new Calculator();
        calc.printDivide(1, 2); // 0.5
        calc.printDivide(1, 0); // Infinity
    }

    public void printDivide(double d1, double d2){
        double result = d1/d2;
        System.out.println(result);

    }
}
  • 결과
0.5
Infinity

왜 두 번째 결과가 Infinity 로 나왔을까?

Java의 실수형(double, float)에는 무한대가 존재한다.

어떤 수보다 절대적으로 크다. *Double*.POSITIVE_INFINITYInfinity 를 출력한다.

Infinity 는 양의 무한대이고 음의 무한대(*Double*.NEGATIVE_INFINITY)도 있다.


NaN(Not a Number) - “숫자가 아님”

간략히 말해서 NaN은 “숫자가 아님”을 뜻한다.

  • 예제
public class Calculator {
    public static void main(String[] args) {
        Calculator calc = new Calculator();
        calc.printDivide(1, 2); // 1.0
        calc.printDivide(1, 0); // NaN
    }

    public void printDivide(double d1, double d2){
        double result2 = d1%d2;
        System.out.println(result2);
    }
}

0을 0으로 나누는 것은 NaN의 케이스 중 하나이다.

표현할 수 없는 값 에도 NaN을 사용한다. 위의 예제처럼 d1 % d2도 표현할 수 없는 값이다.