场景:
使用BigDecimal计算并且使用setSclae保留小数时,比如0.003.setScale(2)就会报错
java.lang.ArithmeticException: Rounding necessary
分析:
当保留的小数位数小于当前小数位数就必须要要指出保留方式,比如四舍五入,向上向下取整,
解决·:
改为setScale(2,2) 第二个参数是roundingMode保留方式,jdk版本不同可能会有不一样的地方,但是知道这个东西就可以具体模式可以网上了解
roundingMode:
ROUND_UP = 0 向外取整模式
ROUND_DOWN = 1 向内取整模式
ROUND_CEILING = 2 向上取整模式
ROUND_FLOOR = 3 向下取整模式
ROUND_HALF_UP = 4 四舍五入模式
ROUND_HALF_DOWN = 5 五舍六入模式
ROUND_HALF_EVEN = 6 舍入模式
ROUND_UNNECESSARY = 7 银行家舍入模式