我有一个使用BigDecimal的比例和RoundingMode四舍五入的问题。BigDecimal错误舍入
这是我的一段代码:
BigDecimal taxAmount = new BigDecimal("0.8445");
taxAmount = taxAmountPrecision.setScale(2, RoundingMode.HALF_UP);
如果我把它0.845四舍五入是很好,但如果有0.8445的TAXAMOUNT为0.84。
它应该是0.8445 - > 0.845 - > 0.85。
不,它是正确的。如果将数字四舍五入到小数点后第二位,则只考虑小数点后三位。不是第四个。所以0.844 - > 0.84 – Jens
'Rounding.HALF_UP'取最近的邻居四舍五入。这是精确性和快速性之间的妥协。 – Cyrbil
可能的重复:http://stackoverflow.com/questions/15352229/rounding-mode-with-bigdecimal-in-java – soorapadman