【发布时间】:2012-05-24 08:58:43
【问题描述】:
我想设置两个 BigDecimal 数字的比例 a 和 b 。如本例所示:
BigDecimal a = new BigDecimal("2.6E-1095");
BigDecimal b = new BigDecimal("2.7E-1105");
int i = 112, j=1;
BigDecimal aa = a.setScale(i+j);
BigDecimal bb = b.setScale(i+j);
当我运行时,我遇到了这个异常:
java.lang.ArithmeticException: Rounding necessary
at java.math.BigDecimal.divideAndRound(BigDecimal.java:1439)
at java.math.BigDecimal.setScale(BigDecimal.java:2394)
at java.math.BigDecimal.setScale(BigDecimal.java:2437)
为什么需要四舍五入?如果我不想四处走动,请问有什么解决方案?
谢谢
【问题讨论】:
-
确实是个惊喜。在不查看文档的情况下,我希望将比例设置为按比例截断......
-
我期待同样的事情。甚至在指定 RoundingMode.ROUNDING_UNNECESSARY 时也会出现此异常。我没有看到截断选项,但希望有。
标签: java rounding bigdecimal