如何检查在Java中相乘两个数字是否会导致溢出?
2022-08-31 09:16:13
我想处理将两个数字相乘导致溢出的特殊情况。代码如下所示:
int a = 20;
long b = 30;
// if a or b are big enough, this result will silently overflow
long c = a * b;
这是一个简化的版本。在实际程序中,并在运行时从其他位置获取。我想实现的是这样的:a
b
long c;
if (a * b will overflow) {
c = Long.MAX_VALUE;
} else {
c = a * b;
}
你如何建议我最好地编写这个代码?
更新:并且在我的场景中始终是非负的。a
b