上代码
BigDecimal oneone= BigDecimal.valueOf(10);
BigDecimal one = BigDecimal.valueOf(3);
BigDecimal result= oneone.divide(one,2, RoundingMode.HALF_UP);
System.out.println(result);
解析:
计算10/3,肯定除不尽,divide()方法如果不增加多余入参,肯定会报错
这里我们介绍除了除数与被除数之外的参数含义,以此代码示例为准
BigDecimal result= oneone.divide(one,2, RoundingMode.HALF_UP);
oneone变量标识10(被除数),one变量标识3(除数)
参数 “2” 代表保留两位小数
RoundingMode.HALF_UP 为不过时方法的核心参数,仔细阅读源码会发现,这个变量只不过是被包了一层而已,底层还是过时方法的变量
总结:换汤换药,不要被方法过时给蒙蔽了,他只是想让你用这个常量作为入参。