java.lang.ArithmeticException: Rounding necessary
错误来源
//将单价除以1000,并保留三位小数
BigDecimal price = new BigDecimal(map.get("poUnitPrice").toString());
BigDecimal factor = new BigDecimal("1000");
//错误位置 |
String result = price.divide(factor).setScale(3).toString();
错误原因
对BigDecimal设置了精度:setScale(3),但是没有设置取舍方式
改正
BigDecimal price = new BigDecimal(map.get("poUnitPrice").toString());
BigDecimal factor = new BigDecimal("1000");
更改位置 |
String result = price.divide(factor).setScale(3,RoundingMode.HALF_UP).toString();