当前位置: 首页 > 知识库问答 >
问题:

分割BigDecimal值时出错:java.lang.算术异常:非终止十进制展开;没有精确表示的十进制结果[重复]

袁英豪
2023-03-14

我参考了这一点,并对BigDecimal值进行了四舍五入,然后我也得到了上述错误。请查找下面提到的代码。提前感谢:

BigDecimal val1 = new BigDecimal(494.10000001).setScale(8, BigDecimal.ROUND_UP);
BigDecimal val2 = new BigDecimal(693189.38625000).setScale(8, BigDecimal.ROUND_UP);
BigDecimal result = val1.divide(val2);
System.out.println(result);

共有2个答案

赫连飞沉
2023-03-14

请注意,除法有自己的可选舍入模式参数:

BigDecimal result=val1.divide(val2, BigDecimal.ROUND_UP);
谭裕
2023-03-14

答案就在那篇帖子里,并且多次提到:

a.divide(b, 8, RoundingMode.HALF_EVEN);

试试你的除法语句(你的精度是8)。你现在做的是除以两个大小数,这会得到一个超大的小数答案,你没有控制精度。

 类似资料: