要舍入一个数字,我使用以下代码:
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