Skip to content

Latest commit

 

History

History
22 lines (15 loc) · 1 KB

item60.md

File metadata and controls

22 lines (15 loc) · 1 KB

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

float와 double 타입은 특히 금융 관련 계산과는 맞지 않는다.

정확한 답이 필요한 계산에는 float이나 double을 피하라.

  • 0.1 혹은 10의 음의 거듭 제곱 수(10^-1, 10^-2 등)를 표현할 수 없기 때문이다.

BigDecimal 사용

  • BigDecimal이 제공하는 여덟가지 반올림 모드를 이용하여 반올림을 완벽히 제어할 수 있다.
  • 소수점 추적은 시스템에 맞긴다.
  • 코딩 시에 불편함하다.
  • 기본 타입보다 훨씬 느리다.

성능이 중요하고 소수점을 직접 추적할 수 있고 숫자가 너무 크지 않다면 int나 double을 사용하라.

int, long 사용

다룰 수 있는 값의 크기가 제한되고, 소수점을 직접 관리해야 함

  • 숫자를 아홉 자리 십진수로 표현할 수 있다면 int를 사용
  • 열여덟 자리 십진수로 표현할 수 있다면 long을 사용
  • 이를 넘어가면 BigDecimal을 사용