分成两位小数不能正常工作

时间:2015-10-08 11:24:16

标签: java bigdecimal

我试图划分193251715/659669075并得到29.30%的结果(所以将它四舍五入到最接近的值,带有两个小数点)

这就是我所做的:

new BigDecimal(193251715).divide(new BigDecimal(659669075) , 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100))

但我得到了29.

我做错了什么?

2 个答案:

答案 0 :(得分:4)

那是因为你乘以100来显示一个百分比。您应该使用 4 而不是2来进行划分,然后将比例设置为2:

new BigDecimal(193251715).divide(new BigDecimal(659669075), 4, RoundingMode.HALF_UP)
                         .multiply(new BigDecimal(100))
                         .setScale(2)

答案 1 :(得分:2)

设置char arg = 0; int foo = +arg; ,以包含更多小数空格。

最后设置2的比例,使其为29.30而不是29.30000。

scale of 4