码迷,mamicode.com
首页 > 其他好文 > 详细

BigDecimal得除法

时间:2020-09-22 16:28:38      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:数位   循环   highlight   选择   div   解决   repr   方法   之间   

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

  

BigDecimal得除法

标签:数位   循环   highlight   选择   div   解决   repr   方法   之间   

原文地址:https://www.cnblogs.com/wei-cy/p/13712335.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!