개발하는 두더지

[Effective Java 규칙48] 정확한 답이 필요하다면 float와 double은 피하라 본문

Java,Android

[Effective Java 규칙48] 정확한 답이 필요하다면 float와 double은 피하라

덜지 2018. 10. 23. 16:01

[Effective Java 규칙48] 정확한 답이 필요하다면 float와 double은 피하라

Effective Java 2/E 책과 구글링을 통해 내용을 정리하고 개인적인 견해가 포함된 글입니다.



float와 double은 기본적으로 과학 또는 엔지니어링 관련 계산에 쓰일 목적으로 설계된 자료형이다. 이 자료형들은 이진 부동 소수점 연산(binary floating-point arithmetic)을 수행하는데, 이것은 넓은 범위의 값에 대해 정확도가 높은 근사치를 제공할 수 있도록 세심하게 설계된 연산이다. 하지만 정확한 결과를 제공하지 않기 때문에 정확한 결과가 필요한 곳에는 사용하면 안된다. 특히 돈과 관계된 계산에는 적합하지 않다. 그러므로 돈 계산을 할 때는 BigDecimal, int, long 타입을 사용한다는 원칙을 지켜야 한다.


BigDeciaml은 올림(rounding) 연산을 어떻게 수행해야하는지 8개의 올림 모드를 설정할 수 있어서 프로그래머가 계산할 필요가 없다. 소수점 이하 처리를 시스템에서 알아서 해주지만, 기본 자료형보다 쓰기가 불편하고 느리다.












Comments