API Platform Conference 2025

BcMath\Number::mul

(PHP 8 >= 8.4.0)

BcMath\Number::mulMultiplie un nombre de précision arbitraire

Description

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

Multiplie $this par num.

Liste de paramètres

num
Le multiplicateur.
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 résultat de la multiplication sous forme d'un nouvel objet BcMath\Number.

Lorsque le BcMath\Number::scale du résultat est défini automatiquement, la somme des BcMath\Number::scales des deux valeurs utilisées pour la multiplication est utilisée.

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

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 hors de la plage valide
  • BcMath\Number::scale du résultat est hors de la plage valide

Exemples

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

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

$ret1 = $number->mul(new BcMath\Number('2.3456'));
$ret2 = $number->mul('-3.4');
$ret3 = $number->mul(7);

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

L'exemple ci-dessus va afficher :

object(BcMath\Number)#1 (2) {
  ["value"]=>
  string(5) "1.234"
  ["scale"]=>
  int(3)
}
object(BcMath\Number)#3 (2) {
  ["value"]=>
  string(9) "2.8944704"
  ["scale"]=>
  int(7)
}
object(BcMath\Number)#2 (2) {
  ["value"]=>
  string(7) "-4.1956"
  ["scale"]=>
  int(4)
}
object(BcMath\Number)#4 (2) {
  ["value"]=>
  string(5) "8.638"
  ["scale"]=>
  int(3)
}

Exemple #2 Exemple de BcMath\Number::mul() spécifiant scale explicitement

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

$ret1 = $number->mul(new BcMath\Number('2.3456'), 1);
$ret2 = $number->mul('-3.4', 10);
$ret3 = $number->mul(7, 0);

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

L'exemple ci-dessus va afficher :

object(BcMath\Number)#1 (2) {
  ["value"]=>
  string(5) "1.234"
  ["scale"]=>
  int(3)
}
object(BcMath\Number)#3 (2) {
  ["value"]=>
  string(3) "2.8"
  ["scale"]=>
  int(1)
}
object(BcMath\Number)#2 (2) {
  ["value"]=>
  string(13) "-4.1956000000"
  ["scale"]=>
  int(10)
}
object(BcMath\Number)#4 (2) {
  ["value"]=>
  string(1) "8"
  ["scale"]=>
  int(0)
}

Voir aussi

add a note

User Contributed Notes

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