java BigDecimal Non-terminating decimal expansion异常

在定义了BigDecimal类型的数据后,进行除法(divide)计算时,由于可能会出现除不尽的情况,因此,必须要指定多个参数:

如:

completedNum.divide(completedNum.add(uncompletedNum),2,BigDecimal.ROUND_HALF_UP)

其中  第一个参数completedNum.add(uncompletedNum) 为除数

第二个参数 2为保留多少为小数

第三个参数是舍入运算模式


总体模式有如下:

BigDecimal.ROUND_DOWN:直接略多余的小数。

BigDecimal.ROUND_UP:直接进位。

BigDecimal.ROUND_HALF_UP:四舍五入。

BigDecimal.ROUND_HALF_DOWN:四舍五入,但当舍弃部分为5时,向下舍入。

BigDecimal.ROUND_CEILING:向上舍入。

BigDecimal.ROUND_FLOOR:向下舍入。

BigDecima.ROUND_HALF_EVEN:四舍五入,但当舍弃部分左边的数字为奇数时,向上舍入;为偶数时,向下舍入。


qrcode