Java

[Java] 실수 float, double

bornsoon 2024. 10. 18. 15:54

자바에서는 실수형을 다룰 때 부동 소수점 방식을 사용하기 때문에 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