[Effective Java] 아이템60 - 정확한 답이 필요하다면 float와 double은 피하라

float과 double 타입은 과학과 공학 계산용으로 설계되어서 근사치를 계산하도록 설계되었다. 따라서 정확한 결과가 필요할 때는 사용하면 안된다. 특히 금융 관련 계산과는 맞지 않는다. (e-Commerce라면 가격 등과 같은 데이터가 되겠다.)

정확한 계산을 하려면 BigDecimal, int 혹은 long을 사용해야 한다. 하지만 BigDecimal은 기본 타입보다 훨씬 불편하고, 훨씬 느리다.

  • 숫자를 9자리 십진수로 표현할 수 있다면 int
  • 18 자리 십진수로 표현할 수 있다면 long
  • 18 자리가 넘어가면 BigDecimal

댓글남기기