자바/유용한 클래스들
유용한 클래스(7) - BigDecimal class
백_곰
2021. 12. 31. 13:22
1. java.math.BigDecimal class
- BigDecimal은 실수형과 달리 정수를 이용해서 실수를 표현한다.
- 앞에서 배운 것과 같이 실수의 오차는 10진수 실수를 2진수로 정확히 변환할 수 없는 경우가 있기 때문에
발생하는 것이므로, 이 클래스를 이용해서 오차가 없는 2진수를 만드는 것이다.
- BigDecimal은 다음과 같은 변수를 가진다.
(1) private final BigInteger intVal
: 정수(unscaled value)
(2) private final int scale
: 지수(scale)
(3) private transient int precision
: 정밀도(precision)
( 12345 * 10^-2의 뜻으로 정밀도는 전체 자릿수를 의미한다. )
- BigDecimal의 생성 방법은 여러가지 있는데, 문자열로 숫자를 표현하는 것이 일반적이다.
아래의 코드를 보자.
<주의할 점>
: 매개변수로 생성하는 new BigDecimal("0.1")과 new BigDecimal(0.1)는 서로 다른 값을 가진다.
("0.1"은 0.1이지만, 0.1은 0.1000....55...의 오차값을 얻는다.)