java - 除 BigDecimal 值 : java. lang.ArithmeticException 时出错:非终止十进制扩展;没有精确可表示的十进制结果

标签 java bigdecimal

我已经引用this并对 BigDecimal 进行四舍五入value 然后我也收到上述错误。请找到下面提到的代码。提前致谢:

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);

最佳答案

答案在那篇文章中,并且也多次声明:

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

在除法语句中尝试这个(为了保证精度,小数位数为 8)。 您现在正在做的是将两个大的小数相除,这会产生一个超大的小数答案,并且您无法控制精度。

关于java - 除 BigDecimal 值 : java. lang.ArithmeticException 时出错:非终止十进制扩展;没有精确可表示的十进制结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48839527/

相关文章:

java - 如何在 Java 中对大数进行 mod (10^9+7)

java - 智能 JVM 和 JIT 微优化

java - 如何正确同步两个线程

java - 如何根据另一个类和一些库来编译我的 Java 类?

java - 在 javafx 2 中将 Rectangle 传递给 setContent 时我做错了什么?

java - 在 Java 中舍入 BigDecimal 不会返回预期的数字

java - Java中HTTP请求中添加HEADER

java - 处理金钱和小数

java - 动态报告 BigDecimal

java - 将十进制数转换为完整整数 - BigDecimal 是否矫枉过正?