【发布时间】:2016-03-10 15:34:10
【问题描述】:
1.
BigDecimal ap = new BigDecimal(170.8999999999998, MathContext.DECIMAL64).setScale(2, BigDecimal.ROUND_FLOOR);
结果:170.89(必需:170.89)
2.
BigDecimal ap = new BigDecimal(170.89999999999998, MathContext.DECIMAL64).setScale(2, BigDecimal.ROUND_FLOOR); (1 Extra 9 in value)
结果:170.90(必需:170.89)
3.
BigDecimal ap = new BigDecimal(2401.99).setScale(2, BigDecimal.ROUND_FLOOR);
结果:2401.98(必填:2401.99)
如何在不四舍五入的情况下从值中获得小数点后 2 位。
P.S : 我不想将值转换为字符串。
【问题讨论】:
-
将数字放在引号中,以便将其字符串表示形式传递给 BigDecimal。目前您使用的是双字面值,在编译期间会产生舍入错误。
标签: java bigdecimal