자바에서는 실수형을 다룰 때 부동 소수점 방식을 사용하기 때문에 float a = 0f; 또는 double b = 0; 을 하면
변수 a, b가 정확한 0이 되지 않는다.
때문에 0.0 또는 0.0f로 나누게 되면 결과는 무한대(Infinity) 또는 NaN(Not a Number)이 된다.
3 / 0.0 // 무한대(Infinity)
5 % 0.0 // NaN
위의 결과에서 계속 연산을 하더라도 무한대는 무한대, NaN은 계속 NaN이 되기 때문에
나눗셈 연산을 할 때에는,
나눗셈 연산의 결과가 무한대 혹은 NaN이 되는지 먼저 확인하고 연산을 계속해 나아가는 것이 좋다.
이를 확인하기 위한 함수가 Double.isInfinite()와 Double.isNaN()이다.
double a = 4 / 0.0
double b = 3 % 0.0f
boolean result = Double.isInfinite(a); // true
boolean result = Double.isNaN(b); // true
728x90
'Java' 카테고리의 다른 글
[Java] Set 인터페이스와 Map 인터페이스 (0) | 2024.10.21 |
---|---|
[Java] Link 인터페이스를 구현한 ArrayList와 LinkedList (0) | 2024.10.21 |
[Java] 입력 (0) | 2024.10.18 |
[Java] 변수 (0) | 2024.10.14 |
[Java] 오버플로, 언더플로, BigInteger (0) | 2024.09.24 |