记一次报错,代码样例:
public static void main(String[] args) {
BigDecimal bigDecimal = new BigDecimal(1234.5);
int res = bigDecimal.intValueExact();
}
报错信息:
Exception in thread "main" java.lang.ArithmeticException: Rounding necessary
at java.math.BigDecimal.divideAndRound(BigDecimal.java:1452)
at java.math.BigDecimal.setScale(BigDecimal.java:2402)
at java.math.BigDecimal.longValueExact(BigDecimal.java:2990)
at java.math.BigDecimal.intValueExact(BigDecimal.java:3047)
原因就是BigDecimal的方法intValueExact,是返回BigDecimal对象的int值,如果原来这个值具有非零小数部分,或者不适合int,则就会抛出上面这个异常
本文通过一个具体的代码示例介绍了BigDecimal类中intValueExact方法的使用方式及可能引发的ArithmeticException异常。当BigDecimal对象包含小数部分或超出int范围时,该方法将抛出异常。
1591

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



