Метод multiplyExact
Метод multiplyExact класса Math выполняет умножение двух чисел и возвращает точный результат. Главная особенность этого метода заключается в том, что он проверяет результат на переполнение типа данных. Если произведение двух чисел выходит за допустимые границы типа int или long, метод выбрасывает исключение ArithmeticException. В первый параметр мы передаем первое число (множимое), во второй параметр - второе число (множитель). Метод перегружен и может принимать как целочисленные значения типа int, так и длинные целые числа типа long.
Синтаксис
Math.multiplyExact(x, y)
Пример
Давайте умножим два числа типа int и выведем результат:
public class Main
{
public static void main(String[] args)
{
int a = 5;
int b = 10;
int res = Math.multiplyExact(a, b);
System.out.println(res);
}
}
Результат выполнения кода:
50
Пример
Давайте попробуем умножить числа, результат которых превышает максимальное значение типа int. Это должно вызвать исключение:
public class Main
{
public static void main(String[] args)
{
try
{
int a = Integer.MAX_VALUE;
int b = 2;
int res = Math.multiplyExact(a, b);
System.out.println(res);
}
catch (ArithmeticException e)
{
System.out.println("Overflow detected");
}
}
}
Результат выполнения кода:
"Overflow detected"
Пример
Давайте умножим два числа типа long и выведем результат:
public class Main
{
public static void main(String[] args)
{
long a = 100000L;
long b = 200000L;
long res = Math.multiplyExact(a, b);
System.out.println(res);
}
}
Результат выполнения кода:
20000000000
Смотрите также
-
метод
addExact,
который выполняет сложение с проверкой переполнения -
метод
negateExact,
который меняет знак числа с проверкой переполнения -
метод
incrementExact,
который увеличивает число на единицу с проверкой переполнения -
метод
pow,
который возводит число в степень