爲了圓的數我使用以下代碼:舍入BigDecimal與所述setScale()方法:意想不到的結果
public static roundBd(BigDecimal bd){
BigDecimal result1 = bd.setScale(0, RoundingMode.HALF_UP);
return result1;
}
- 輸入1.50 - >輸出2
- 輸入1.499 - >輸出1
第一個結果對我來說沒問題,但第二個結果並不符合我的預期。即使對於1.499 我想有在輸出2(在細節:首先我想然後到1.499舍入到1.50至1.5,最後到2)
但是....
BigDecimal bd = new BigDecimal("1.499"); // I'd like to round it to 2
BigDecimal result1 = bd.setScale(2, RoundingMode.HALF_UP); // result1 == 1.50
BigDecimal result2 = bd.setScale(1, RoundingMode.HALF_UP); // result2 == 1.5
BigDecimal result3 = bd.setScale(0, RoundingMode.HALF_UP); // result3 == 1
從那個圓的風格1.4444444445將四捨五入到2,這就是我們要的不是什麼。 – Hafthor