假设我有一个 Java 类方法,它使用*
和+
操作。
int foo(int a, int b) { ... // 一些带有 + 和 * 的计算 }
如何确保不会发生溢出foo
?
我想我可以使用BigDecimal
或替换所有 + 和 * 为“包装器”,例如:
整数总和(int a,int b){ 诠释 c = a + b; 如果 (a > 0 && b > 0 && c < 0) 抛出新的 MyOverfowException(a, b) 返回 c; } int prod(int a,int b){ 诠释 c = a * b; 如果 (a > 0 && b > 0 && c < 0) 抛出新的 MyOverfowException(a, b) 返回 c; }
有没有更好的方法来确保int
Java 方法中不发生溢出?