Skip to content

Latest commit

 

History

History
14 lines (10 loc) · 865 Bytes

item60.md

File metadata and controls

14 lines (10 loc) · 865 Bytes

아이템 60. 정확한 답이 필요하다면 float와 double은 피하라

float, double 사용 시 주의점

  • float, double은 부동 소수 타입이다.
  • 10의 음의 거듭제곱수(10^-2, ...) 를 표현할 수 없는 구조이다.
  • 정확한 결과가 필요하거나 금융 관련 계산을 할 때엔 사용하면 안 된다.

정확한 결과가 필요한 경우

  • BigDecimal, int, long을 사용해야 한다.
  • BigDecimal의 경우 기본타입보다 쓰기 불편하고, 성능이 느리다.
  • int, long 타입의 경우 다룰수 있는 값의 크기가 제한되고, 소수점을 직접 관리해야 한다.
  • 숫자를 아홉 자리 십진수로 표현할 수 있다면 int 사용하고, 열여덟자리 십진수로 표현할 수 있다면 long을 사용하고, 열여덟자리가 넘어가면 BigDecimal을 사용해야 한다.