자바/유용한 클래스들

유용한 클래스(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...의 오차값을 얻는다.)