들어가며
float와 double 타입은 과학과 공학 계산용으로 설계되었다. 이진 부동소수점 연산에 사용되며 넓은 범위의 수를 근사치로 계산한다. 따라서 정확한 결과가 필요할때는 사용하면 안된다. float와 double타입은 특히 금융 관련 계산과는 맞지 않다. 그렇다면 소수점 계산이 필요할때는 어떻게 할까? 성능을 신경쓰지 않는다면 BigDecimal
을 사용할 수 있다. BigDecimal을 생성하며 소수점을 문자열로 작성하면 된다. 쓰기 불편하다는 점과 느리다는 단점이 있다. 소수점을 추적할 수 있다면 long
을 사용할 수 있다. 즉, 정확한 숫자 계산이 필요하며 숫자를 9자리 이하로 다룰 수 있다면 int를, 18자리 이하로 다룰 수 있다면 long을, 아니면 BigDecimal을 사용해야한다.