Как я могу проверить, приведет ли умножение двух чисел в Java к переполнению?
Я хочу обработать особый случай, когда умножение двух чисел вызывает переполнение. Код выглядит примерно так:
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
всегда неотрицательны в моем сценарии.