다음 번호가 포함 된 m_FOBST
이라는 속성이 있습니다 : 1.5776
. 여기에 나는 그것을 반올림하기 위해 노력하고있어 : 내가 1.58를 받고되어야 할 때Java에서 BigDecimal을 반올림해도 예상되는 숫자가 반환되지 않습니다.
this.m_FOBST.setScale(2, BigDecimal.ROUND_HALF_EVEN)
는 그러나, 나는 수 1.60를 얻을.
이유를 설명 할 수 있습니까?
다음 번호가 포함 된 m_FOBST
이라는 속성이 있습니다 : 1.5776
. 여기에 나는 그것을 반올림하기 위해 노력하고있어 : 내가 1.58를 받고되어야 할 때Java에서 BigDecimal을 반올림해도 예상되는 숫자가 반환되지 않습니다.
this.m_FOBST.setScale(2, BigDecimal.ROUND_HALF_EVEN)
는 그러나, 나는 수 1.60를 얻을.
이유를 설명 할 수 있습니까?
BigDecimal
은 변경할 수 없습니다. setScale()
메서드에서 반환 한 값을 사용하고 있는지 확인하십시오. 이 경우
BigDecimal bd = new BigDecimal("1.5776");
bd = bd.setScale(2, BigDecimal.ROUND_HALF_EVEN);
가 bd
가 I이 복제 할 수 1.58
, 내가 얻을 : 당연 000> D = 새의 BigDecimal를 ("1.5776") ===> 당연 1.5776 : 000> d1 = d.setScale (2, BigDecimal.ROUND_HALF_EVEN) ===> 1.58 –
스케일을 3으로 설정해보십시오. – wchargin
참조 http://araklefeistel.blogspot.com/2011/06/javamathbigdecimal-difference-between.html?m=1 – wchargin