API Platform Conference 2025

BcMath\Number::pow

(PHP 8 >= 8.4.0)

BcMath\Number::powElève un nombre de précision arbitraire

Description

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

Elève $this à la puissance exponent.

Liste de paramètres

exponent
L'exposant. Doit être une valeur sans partie fractionnaire. La plage valide de l'exponent est spécifique à la plateforme, mais il s'agit au moins de -2147483648 à 2147483647.
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 la valeur de la puissance sous forme d'un nouvel objet BcMath\Number.

Lorsque le BcMath\Number::scale du résultat est défini automatiquement, selon la valeur de exponent, le BcMath\Number::scale du résultat sera comme suit:

exponent BcMath\Number::scale du résultat
positive (BcMath\Number::scale de la puissance de base) * (la valeur de l'exponent)
0 0
negative Entre (BcMath\Number::scale de la puissance de base) et (BcMath\Number::scale de la puissance de base + 10)

Si une division indivisible se produit en raison d'un exponent négatif, le BcMath\Number::scale du résultat est étendu. L'extension est effectuée uniquement si nécessaire, jusqu'à un maximum de +10. Ce comportement est le même que BcMath\Number::div(), alors veuillez consulter cela pour plus de détails.

Erreurs / Exceptions

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

  • exponent est un string n'est pas une chaîne BCMath bien formée
  • exponent a une partie fractionnel
  • exponent ou scale est en dehors de la plage valide
  • Le BcMath\Number::scale du résultat est en dehors de la plage valide

Cette méthode lève une DivisionByZeroError exception si la valeur de $this est 0 et exponent est une valeur négative.

Exemples

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

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

$ret1 = $number->pow(new BcMath\Number('5'));
$ret2 = $number->pow('-1');
$ret3 = $number->pow(0);

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

L'exemple ci-dessus va afficher :

object(BcMath\Number)#1 (2) {
  ["value"]=>
  string(3) "3.0"
  ["scale"]=>
  int(1)
}
object(BcMath\Number)#3 (2) {
  ["value"]=>
  string(9) "243.00000"
  ["scale"]=>
  int(5)
}
object(BcMath\Number)#2 (2) {
  ["value"]=>
  string(13) "0.33333333333"
  ["scale"]=>
  int(11)
}
object(BcMath\Number)#4 (2) {
  ["value"]=>
  string(1) "1"
  ["scale"]=>
  int(0)
}

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

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

$ret1 = $number->pow(new BcMath\Number('5'), 0);
$ret2 = $number->pow('-1', 2);
$ret3 = $number->pow(0, 10);

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

L'exemple ci-dessus va afficher :

object(BcMath\Number)#1 (2) {
  ["value"]=>
  string(3) "3.0"
  ["scale"]=>
  int(1)
}
object(BcMath\Number)#3 (2) {
  ["value"]=>
  string(3) "243"
  ["scale"]=>
  int(0)
}
object(BcMath\Number)#2 (2) {
  ["value"]=>
  string(4) "0.33"
  ["scale"]=>
  int(2)
}
object(BcMath\Number)#4 (2) {
  ["value"]=>
  string(12) "1.0000000000"
  ["scale"]=>
  int(10)
}

Voir aussi

add a note

User Contributed Notes

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