我想处理两个数字相乘导致溢出的特殊情况.代码看起来像这样:
int a = 20;
long b = 30;
// if a or b are big enough, this result will silently overflow
long c = a * b;
Run Code Online (Sandbox Code Playgroud)
这是一个简化版本.在真正的程序中,a并b在运行时在其他地方采购.我想要实现的是这样的:
long c;
if (a * b will overflow) {
c = Long.MAX_VALUE;
} else {
c = a * b;
}
Run Code Online (Sandbox Code Playgroud)
您如何建议我最好编码?
更新:a而且b总是在我的场景下非负.