使用double进行Java舍入(货币计算)

时间:2016-02-22 17:38:42

标签: java decimal rounding currency

对于我的项目,我决定将钱存入整数(便士),而不是使用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

0 个答案:

没有答案