new BigDecimal(“12.7895”).setScale(2).doubleValue();
会抛出异常
Exception in thread “main” java.lang.ArithmeticException: Rounding necessary
at java.base/java.math.BigDecimal.commonNeedIncrement(BigDecimal.java:4501)
at java.base/java.math.BigDecimal.needIncrement(BigDecimal.java:4557)
at java.base/java.math.BigDecimal.divideAndRound(BigDecimal.java:4465)
at java.base/java.math.BigDecimal.setScale(BigDecimal.java:2799)
at java.base/java.math.BigDecimal.setScale(BigDecimal.java:2859)
开始打算用BigDecimal截取数据处理不加上处理的规则,但是发现BigDecimal在处理多位数时,截取必须加上规则,否则无法使用。
探讨了在Java中使用BigDecimal进行数值处理时,如果不指定舍入规则,可能会遇到的异常情况及解决办法。文章通过实例说明了当尝试将BigDecimal的规模设置为特定值时,如果没有正确的舍入规则,会导致ArithmeticException异常。
182

被折叠的 条评论
为什么被折叠?



