这里用到了两个方法,特记录一下
.divide
new BigDecimal(a).divide(new BigDecimal(b), 2, RoundingMode.HALF_UP);
.divide(new BigDecimal(b), 2, RoundingMode.HALF_UP):对第一个 BigDecimal 对象 (表示的值是 a)除以第二个 BigDecimal 对象(表示的值是 b)
2 表示保留小数点后两位
RoundingMode.HALF_UP 表示四舍五入模式。在这种模式下,当小数点后第二位的小数等于 5 时,会向上舍入(即向更大的数舍入)
所以,这段代码的作用是将 a 除以 b,并保留小数点后两位,采用四舍五入模式
这里会导致在除法时会出现明明可以除但是结果为0的情况,加入下述.setScale即可解决
.setScale
考虑使用 setScale 方法来设置保留的小数位数和舍入模式
new BigDecimal(a).setScale(2, RoundingMode.HALF_UP).divide(b, RoundingMode.HALF_UP);
这个示例中,使用和 setScale 方法进行除法运算
2 表示保留小数点后两位
RoundingMode.HALF_UP 表示四舍五入模式
10万+

被折叠的 条评论
为什么被折叠?



