Получает неполное частное и остаток от деления числа произвольной точности

# bcdivmod

(PHP 8 >= 8.4.0)

bcdivmod — Получает неполное частное и остаток от деления числа произвольной точности

### Описание

function bcdivmod(string `$num1`, string `$num2`, ?int `$scale` = `null`): array

Функция получает целую часть от деления числа `num1` на число `num2` и остаток от деления.

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

`num1`

  Делимое в виде строки.

`num2`

  Делитель в виде строки.

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

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

Функция возвращает индексный массив (array), в котором первый элемент – неполное частное в виде значения с типом string, а второй элемент – остаток от деления в виде значения с типом string.

### Ошибки

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

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

Функция выбрасывает исключение DivisionByZeroError, если число `num2` равно `0`.

### Примеры

Пример #1 Пример получения неполного частного и остатка от деления функцией bcdivmod()

    <?php

    bcscale(0);

    [$quot, $rem] = bcdivmod('5',  '3');
    echo $quot; // 1
    echo $rem;  // 2

    [$quot, $rem] = bcdivmod('5',  '-3');
    echo $quot; // -1
    echo $rem;  // 2

    [$quot, $rem] = bcdivmod('-5',  '3');
    echo $quot; // -1
    echo $rem;  // -2

    [$quot, $rem] = bcdivmod('-5',  '-3');
    echo $quot; // 1
    echo $rem;  // -2

    ?>

Пример #2 Пример получения неполного частного и остатка от деления функцией bcdivmod() с десятичными дробями

    <?php

    [$quot, $rem] = bcdivmod('5.7', '1.3', 1);

    echo $quot; // 4
    echo $rem;  // 0.5

    ?>

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

- bcdiv() - Делит два числа произвольной точности
- bcmod() - Получает остаток от деления чисел произвольной точности
- BcMath\Number::divmod() - Получает неполное частное и остаток от деления числа произвольной точности

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