对于我的项目,我决定将钱存入整数(便士),而不是使用BigDecimal和Co。
但我在百分比计算和两位小数舍入方面遇到了一些麻烦。
例如,我希望计算11.88 $的2.9%,即:1188 * 0.029 = 34.452 = 35 (so 0.35$)
(the .4 round to .5 so the 34 round 35)
但无法使用Math.round或Math.ceil来达到此结果。
double r = Math.round(34.452)
r = 34
有没有一种方法在Java中使用double / long来舍入,如我的例子中所示?
(注意:使用BigDecimal和setScale(2,RoundingMode.CEILING)非常有效)
1.03356 1.03356