Infinity 와 NaN(Not a Number) - in Java
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_INFINITY
는 Infinity
를 출력한다.
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
도 표현할 수 없는 값이다.