Item 48. 정확한 답이 필요하다면 float와 double은 피하라.
- float와 double은 돈과 관련된 계산에는 적합하지 않다.
- 돈 계산할 때는
BigDecimal
,int
,long
을 사용한다는 원칙을 지키자.
BigDecimal의 단점
- 기본 산술 연산 자료형(primitive arithmetic type) 보다 사용이 불편함
- (불변객체이기 때문에)기본 산술 연산 자료형 보다 연산이 느림
int, long 사용
- 달러 기준으로 달러가 아니라 센트단위로 하거나, 원화 기준으로 원 소수점 이하를 소수점 이상으로 한다.
결론
- 성능이 떨어져도 세밀한 계산이 필요하면
BigDecimal
사용 - 성능이 중요하면,
- 십진수 9자리 이하는
int
- 십진수 18자리 이하는
long
- 그 이상은
BigDecimal
- 십진수 9자리 이하는