本文相关文章:
BigDecimal类型比较大小
BigDecilmal类型加减乘除及四舍五入方法
原因是因为做除法运算的时候,得到的结果为无限循环小数
。
像下面的代码 我打算将1除以3 再乘100的结果, 保留两位小数。
但是 1除以3得到的结果是0.333333无限循环。
int m = 1;
int n = 3;
BigDecimal a = new BigDecimal(StrUtil.toString(m));
BigDecimal b = new BigDecimal(StrUtil.toString(n));
BigDecimal bigDecimal = a.divide(b).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(bigDecimal);
可以改成下面这样,将1/3得到的结果保留10小数再做处理。
BigDecimal bigDecimal = a.divide(b,10, BigDecimal.ROUND_HALF_UP);