相关疑难解决方法(0)

如何检查Java中的两个数字相乘是否会导致溢出?

我想处理两个数字相乘导致溢出的特殊情况.代码看起来像这样:

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)

这是一个简化版本.在真正的程序中,ab在运行时在其他地方采购.我想要实现的是这样的:

long c;
if (a * b will overflow) {
    c = Long.MAX_VALUE;
} else {
    c = a * b;
}
Run Code Online (Sandbox Code Playgroud)

您如何建议我最好编码?

更新:a而且b总是在我的场景下非负.

java math overflow long-integer

94
推荐指数
6
解决办法
3万
查看次数

标签 统计

java ×1

long-integer ×1

math ×1

overflow ×1