1、new BigDecimal(this.retentionValue.toString()).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
注:此处this.retentionValue是一个double类型的值。
最后返回的是一个double类型的数值
2、java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result
通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常的,异常如下:
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. at
java.math.BigDecimal.divide(Unknown Source)
解决方法:就是给divide设置精确的小数点divide(xxxxx,2, BigDecimal.ROUND_HALF_EVEN)。