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

# bcmul

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

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

### Описание

function 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() - Умножает число произвольной точности

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open