double 값을 허용하는 BigDecimal 생성자 호출을 보고합니다.
이러한 생성자는 제공된 double 값과 정확히 동일한 BigDecimal을 생성합니다.
하지만 double은 IEEE 754 64비트 배정밀도 2진 부동소수점 형식으로 인코딩되기 때문에 정확한 값은 기대할 수 없습니다.
예를 들어, new BigDecimal(0.1)은 BigDecimal 객체를 산출합니다. 이 값은 double로 나타낼 수 있는 0.1에 가장 가까운 수인 0.1000000000000000055511151231257827021181583404541015625입니다.
소스 코드에 쓰인 값과 같은 값을 저장하는 BigDecimal을 얻으려면 new BigDecimal("0.1") 또는 BigDecimal.valueOf(0.1)를 사용하세요.
예:
class Constructor {
void foo() {
new BigDecimal(0.1);
}
}
빠른 수정을 적용한 후:
class Constructor {
void foo() {
new BigDecimal("0.1");
}
}