BigDecimal得除法

时间:2020-09-22 16:28:38   收藏:0   阅读:87

场景:两个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);

  

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!