PHP 8.4.3 Released!

BcMath\Number::add

(PHP 8 >= 8.4.0)

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

Description

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

Ajoute $this et num.

Liste de paramètres

num
La valeur à ajouter.
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 l'addition sous la 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'addition 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

Exemples

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

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

$ret1 = $number->add(new BcMath\Number('2.34567'));
$ret2 = $number->add('-3.456');
$ret3 = $number->add(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(7) "3.57967"
  ["scale"]=>
  int(5)
}
object(BcMath\Number)#2 (2) {
  ["value"]=>
  string(6) "-2.222"
  ["scale"]=>
  int(3)
}
object(BcMath\Number)#4 (2) {
  ["value"]=>
  string(5) "8.234"
  ["scale"]=>
  int(3)
}

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

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

$ret1 = $number->add(new BcMath\Number('2.34567'), 1);
$ret2 = $number->add('-3.456', 10);
$ret3 = $number->add(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) "3.5"
  ["scale"]=>
  int(1)
}
object(BcMath\Number)#2 (2) {
  ["value"]=>
  string(13) "-2.2220000000"
  ["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