我试图划分193251715/659669075并得到29.30%的结果(所以将它四舍五入到最接近的值,带有两个小数点)
这就是我所做的:
new BigDecimal(193251715).divide(new BigDecimal(659669075) , 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100))
但我得到了29.
我做错了什么?
答案 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