부동 소수점 자료를 정확하게 저장하는 방법 - BigDecimal 객체 이용
🔢 java 내에서 부동소수점 자료형
부동소수점 자료는 정수를 넘어 소수점을 표현하기 위해 사용되는 자료형이다. 하지만, 이 자료형으로 정확한 계산을 하기에는 어딘가 부족해보인다. 아래의 예를 살펴보자.
floatingpoint.java | |
---|---|
부동 소수점 자료형을 모듈러 연산을 한 결과이다. 깔끔하게 떨어지지 않고, 맨 끝에 3
이라는 작은 값이 추가되는 것을 확인할 수 있다. 이렇게 되면 정확도가 우선인 프로그램을 짤 때 예측하지 못하는 오류가 생길 수 있을 것이라 생각된다.
또다른 예를 살펴보자.
floatingpoint2.java | |
---|---|
두 연산의 결과가 6.3333332222222222
가 아닌 맨 끝에 5
가 추가되는 것을 볼 수 있다. 이로서 부동소수점 연산이 얼마나 정확하게 계산하고 있지 않은지 확인할 수 있었다.
📌 소수점 연산은 BigDecimal class를 이용하자.
정확한 소수점 연산을 하기 위해서는 BigDecimal
class를 이용하여 아래와 같이 계산을 해보자. BigDecimal에 숫자를 넣을 때, 문자열을 넣는 것을 주목하자.
BigDecimalExample.java | |
---|---|