bcmul

(PHP 4, PHP 5, PHP 7, PHP 8)

bcmul Умножает два числа произвольной точности

Описание

bcmul(string $num1, string $num2, ?int $scale = null): string

Функция умножает число num1 на число num2.

Список параметров

num1

Левый операнд (слагаемое) в виде строки.

num2

Правый операнд (слагаемое) в виде строки.

scale
Параметр используется для установки количества цифр после десятичного знака в результате. Если установлено значение null, то по умолчанию будет установлен масштаб по умолчанию, заданный с помощью функции bcscale() или значение INI-директивы bcmath.scale.

Возвращаемые значения

Функция возвращает результат в виде строки.

Ошибки

Функция выбрасывает исключение ValueError в следующих случаях:

  • Значение аргумента num1 или num2 оказалось строкой, которую сформировали неправильно с точки зрения допустимого формата числовых строк в модуле BCMath.
  • Значение аргумента scale выходит за пределы допустимого диапазона.

Список изменений

Версия Описание
8.0.0 Параметр scale теперь принимает значение null.
7.3.0 Теперь функция bcmul() возвращает числа с заданной точностью. Раньше нули в конце дробной части числа отбрасывались.

Примеры

Пример #1 Пример умножения чисел произвольной точности функцией bcmul()

<?php

echo bcmul('1.34747474747', '35', 3); // 47.161
echo bcmul('2', '4'); // 8

?>

Примечания

Замечание:

До PHP 7.3.0 функция bcmul() иногда возвращала результат с меньшим количеством цифр после десятичной точки, чем указали в аргументе scale. Функция усекала дробную часть, только когда результат не требовал всей точности, которую разрешал параметр scale. Например:

Пример #2 Пример усечения точности функцией bcmul()

<?php

echo bcmul('5', '2', 2); // Выводит "10", а не "10.00"

?>

Смотрите также

  • bcdiv() - Делит два числа произвольной точности
  • BcMath\Number::mul() - Умножает число произвольной точности