API Platform Conference 2025

BcMath\Number::mod

(PHP 8 >= 8.4.0)

BcMath\Number::modRenvoie le modulo d'un nombre de précision arbitraire

Description

public BcMath\Number::mod(BcMath\Number|string|int $num, ?int $scale = null): BcMath\Number

Renvoie le reste de la division de $this par num. Sauf si num est 0, le résultat a le même signe que $this.

Liste de paramètres

num
Le diviseur.
scale
scale spécifié explicitement pour les résultats du calcul. Si null, le scale du résultat du calcul sera défini automatiquement.

Valeurs de retour

Renvoie le modulo sous forme d'un nouvel objet BcMath\Number.

Lorsque le BcMath\Number::scale du résultat est défini automatiquement, le plus grand BcMath\Number::scale des deux nombres utilisés pour l'opération de modulo est utilisé.

C'est-à-dire que si les BcMath\Number::scale de deux valeurs sont 2 et 5 respectivement, le BcMath\Number::scale du résultat sera 5.

Erreurs / Exceptions

Cette méthode lève une ValueError dans les cas suivants :

  • num est un string et n'est pas une chaîne numérique BCMath bien formée
  • scale est en dehors de la plage valide

Cette méthode lève une DivisionByZeroError si num est 0.

Exemples

Exemple #1 Exemple de BcMath\Number::mod() lorsque scale n'est pas spécifié

<?php
$number
= new BcMath\Number('8.3');

$ret1 = $number->mod(new BcMath\Number('2.22'));
$ret2 = $number->mod('8.3');
$ret3 = $number->mod(-5);

var_dump($number, $ret1, $ret2, $ret3);
?>

L'exemple ci-dessus va afficher :

object(BcMath\Number)#1 (2) {
  ["value"]=>
  string(3) "8.3"
  ["scale"]=>
  int(1)
}
object(BcMath\Number)#3 (2) {
  ["value"]=>
  string(4) "1.64"
  ["scale"]=>
  int(2)
}
object(BcMath\Number)#2 (2) {
  ["value"]=>
  string(3) "0.0"
  ["scale"]=>
  int(1)
}
object(BcMath\Number)#4 (2) {
  ["value"]=>
  string(3) "3.3"
  ["scale"]=>
  int(1)
}

Exemple #2 Exemple de BcMath\Number::mod() en définissant scale explicitement

<?php
$number
= new BcMath\Number('8.3');

$ret1 = $number->mod(new BcMath\Number('2.22'), 1);
$ret2 = $number->mod('8.3', 3);
$ret3 = $number->mod(-5, 0);

var_dump($number, $ret1, $ret2, $ret3);
?>

L'exemple ci-dessus va afficher :

object(BcMath\Number)#1 (2) {
  ["value"]=>
  string(3) "8.3"
  ["scale"]=>
  int(1)
}
object(BcMath\Number)#3 (2) {
  ["value"]=>
  string(3) "1.6"
  ["scale"]=>
  int(1)
}
object(BcMath\Number)#2 (2) {
  ["value"]=>
  string(5) "0.000"
  ["scale"]=>
  int(3)
}
object(BcMath\Number)#4 (2) {
  ["value"]=>
  string(1) "3"
  ["scale"]=>
  int(0)
}

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top