double 값을 허용하는 BigDecimal 생성자 호출을 보고합니다. 이 생성자는 제공된 double 값과 동일한 BigDecimal을 생성합니다. 하지만 double은 IEEE 754 64비트 배정밀도 2진 부동소수점 형식으로 인코딩되기 때문에 정확한 값은 기대할 수 없습니다.

예를 들어, new BigDecimal(0.1)은 값이 0.1000000000000000055511151231257827021181583404541015625BigDecimal 객체를 생성합니다. 이는 double로 표현할 수 있는 0.1에 가장 근접한 숫자입니다. 예상되는 값 0.1을 포함하는 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");
    }
  }