float와 double 타입은 특히 금융 관련 계산과는 맞지 않는다.
float과 double타입은 근사치 계산을 하기 때문에 정확한 값을 보장하지 않는다. 특히 금융 계산과 같이 정밀도가 중요한 작업에서는 부적합하다.
금융 계산에는 BigDecimal, int 혹은 long을 사용해야 한다.
핵심 정리 : 정확한 답이 필요한 계산에는 float나 double을 피하라. 소수점 추적은 시스템에 맡기고, 코딩 시의 불편함이나 성능 저하를 신경 쓰지 않겠다면 BigDecimal을 사용하라. BigDecimal이 제공하는 여덟가지 반올림 모드를 이용하여 반올림을 완벽히 제어할 수 있다. 법으로 정해진 반올림을 수행해야 하는 비즈니스 계산에서 아주 편리한 기능이다. 반면, 성능이 중요하고 소수점을 직접 추적할 수 있고 숫자가 너무 크지 않다면 int나 long을 사용하라. 숫자를 아홉 자리 십진수로 표현할 수 있다면 int를 사용하고, 열여덟 자리 십진수로 표현할 수 있다면 long을 사용하라. 열여덟 자리를 넘어가면 BigDecimal을 사용해야 한다.
'이펙티브 자바' 카테고리의 다른 글
[이펙티브 자바] 아이템 61. 박싱된 기본 타입보다는 기본 타입을 사용하라 (0) | 2024.05.29 |
---|---|
[이펙티브 자바] 아이템 59. 라이브러리를 익히고 사용하라 (0) | 2024.05.28 |
[이펙티브 자바] 아이템 58. 전통적인 for 문보다는 for-each 문을 사용하라 (0) | 2024.05.28 |
[이펙티브 자바] 아이템 57. 지역변수의 범위를 최소화하라 (0) | 2024.05.28 |
[이펙티브 자바] 아이템 56. 공개된 API 요소에는 항상 문서화 주석을 작성하라 (0) | 2024.05.21 |