Метод fma
Метод fma класса Math расшифровывается
как fused multiply-add (объединённое умножение-сложение).
Он вычисляет выражение a * b + c, но делает это
за одну операцию с округлением только один раз в самом
конце. Это позволяет получить более точный результат,
чем при последовательном умножении и сложении.
В первый параметр мы передаём множитель a,
во второй - множитель b, а в третий - слагаемое
c. Метод возвращает значение типа double.
Синтаксис
Math.fma(a, b, c)
Пример
Давайте вычислим выражение 2 * 3 + 4 с помощью метода
fma:
public class Main
{
public static void main(String[] args)
{
double res = Math.fma(2, 3, 4);
System.out.println(res);
}
}
Результат выполнения кода:
10.0
Пример
Метод fma особенно полезен для повышения точности
при работе с дробными числами. Давайте сравним его
результат с обычным умножением и сложением:
public class Main
{
public static void main(String[] args)
{
double a = 0.1;
double b = 0.2;
double c = 0.3;
double fmaRes = Math.fma(a, b, c);
double simpleRes = a * b + c;
System.out.println(fmaRes);
System.out.println(simpleRes);
}
}
Результат выполнения кода:
0.32000000000000006
0.32000000000000006
Пример
Давайте найдём произведение чисел 5 и 6
с прибавлением 7:
public class Main
{
public static void main(String[] args)
{
double res = Math.fma(5, 6, 7);
System.out.println(res);
}
}
Результат выполнения кода:
37.0
Смотрите также
-
класс
Math,
который содержит математические методы -
метод
pow,
который возводит число в степень -
метод
sqrt,
который возвращает квадратный корень -
метод
IEEEremainder,
который вычисляет остаток по стандарту IEEE