BigDecimal得除法

场景:两个BigDecimal之间做除法

BigDecimal result = dto.getCargoWeight().divide(record.getCargoWeight()); 

问题:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.

原因:BigDecimal类型得数据之间在做除法时,如果结果是无限循环小数,那么就会报上面得异常。

解决方法:找到divide得重载方法,让除法得结果保留小数位即可,我这边是选择了保留两位小数。

BigDecimal result = dto.getCargoWeight().divide(record.getCargoWeight(),2, BigDecimal.ROUND_HALF_UP);

  

posted @ 2020-09-22 15:10  沐言星空  阅读(2289)  评论(0)    收藏  举报