item 60) 정확한 답이 필요하다면 float, double은 피하라

float, double 사용 시 주의점

  • float, double은 부동 소수 타입이다.

  • 10의 음의 거듭제곱수(10^-2, ...)를 표현할 수 없는 구조이다.

  • 정확한 결과가 필요하거나 금융 관련 계산을 할 때엔 사용하면 안 된다.

정확한 결과가 필요한 경우

  • BigDecimal, int, long을 사용해야 한다.

  • BigDecimal의 경우 기본타입보다 쓰기 불편하고, 성능이 느리다.

  • int, long 타입의 경우 다룰수 있는 값의 크기가 제한되고, 소수점을 직접 관리해야 한다.

  • 숫자를 아홉 자리 십진수로 표현할 수 있다면 int 사용하고, 열여덟자리 십진수로 표현할 수 있다면 long을 사용하고, 열여덟자리가 넘어가면 BigDecimal을 사용해야 한다.

Last updated