(PHP 8 >= 8.4.0)
bcdivmod — Renvoie le quotient et le reste d'un nombre de précision arbitraire
Renvoie le quotient et le reste de la division de num1
par
num2
.
num1
Le dividende, sous la forme d'une chaîne de caractères.
num2
Le diviseur, sous la forme d'une chaîne de caractères.
scale
null
, il prendra par défaut la valeur définie par bcscale(),
ou, à défaut, la valeur de la directive INI
bcmath.scale
.
Renvoie un tableau indexé où le premier élément est le quotient sous forme de chaîne et le second élément est le reste sous forme de chaîne.
Cette fonction lève une exception ValueError dans les cas suivants :
num1
ou num2
n'est pas une chaîne numérique BCMath correctement formée.
scale
est en dehors de la plage valide.
Cette fonction lève une exception DivisionByZeroError
si num2
est égal à 0
.
Exemple #1 Exemple de 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
?>
Exemple #2 bcdivmod() avec des décimaux
<?php
[$quot, $rem] = bcdivmod('5.7', '1.3', 1);
echo $quot; // 4
echo $rem; // 0.5
?>