当前位置: 首页 > 工具软件 > ExpAn > 使用案例 >

在使用BigDecimal rate = new BigDecimal(1).divide(new BigDecimal(3));1时抛异常:Non-terminating decimal expan

狄易安
2023-12-01

在使用

BigDecimal rate = new BigDecimal(1).divide(new BigDecimal(3));
1
时抛异常:

Non-terminating decimal expansion; no exact representable decimal result
1
原来是在做除法的时候出现了无限不循环小数如:0.333333333333

解决方案
在做做除法的时候指定保留的小数的位数:

BigDecimal rate = new BigDecimal(1).divide(new BigDecimal(3), 6, BigDecimal.ROUND_HALF_UP);

(new BigDecimal(duration).divide(new BigDecimal(classroomCourse.getQualifiedDuration()*60*1000),4,RoundingMode.HALF_UP)

 类似资料: