Java 数学增量精确(整数a)
为什么它不按照API抛出异常和异常 返回递增1的参数,如果 结果溢出一个int 返回-2147483647,因为您已经比最大值多了一个。首先计算Java 数学增量精确(整数a),java,api,Java,Api,为什么它不按照API抛出异常和异常 返回递增1的参数,如果 结果溢出一个int 返回-2147483647,因为您已经比最大值多了一个。首先计算2_147_483_647+1 尝试System.out.println(数学增量精确(2_147_483_646+1))这是因为您将Integer.MIN_值传递给Math.incrementExact函数 首先计算表达式2\u 147\u 483\u 647+1,由于它溢出,结果是-2147483648。然后将其传递给Math.incrementEx
2_147_483_647+1
尝试
System.out.println(数学增量精确(2_147_483_646+1))
这是因为您将Integer.MIN_值
传递给Math.incrementExact
函数
首先计算表达式2\u 147\u 483\u 647+1
,由于它溢出,结果是-2147483648
。然后将其传递给Math.incrementExact
,结果是-2147483647
你想做的是
System.out.println(Math.incrementExact(2_147_483_647));
这会导致
java.lang.arithmetricException:整数溢出
,因为在调用Math之前,会在2_147_483_647+1
中溢出。resultA方法调用上的incrementExact
无法更改将结果传递给它的表达式的编译方式。
System.out.println(Math.incrementExact(2_147_483_647));