(PHP 8 >= 8.4.0)
bcdivmod — Получает неполное частное и остаток от деления числа произвольной точности
Функция получает целую часть от деления числа 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
?>