当传入的值是String类型时,四舍五入是正确的,当传入的是double类型的时候,四舍五入是有问题;
尽量使用String作为传入值,保证计算的准确性。
下面是例子:
@Test
public void test() throws Exception {
double num = 176.5555;
System.out.println((new BigDecimal(num).setScale(3,BigDecimal.ROUND_HALF_UP)));
}
结果是:176.555
@Test
public void test() throws Exception {
String num = "176.5555";
System.out.println((new BigDecimal(num).setScale(3,BigDecimal.ROUND_HALF_UP)));
}
结果是:176.556