BCPow est une fonction fournie par l'extension BCMATH pour les opérations exponentives de haute précision. La syntaxe est la suivante:
string bcpow ( string $base , string $exponent [, int $scale = 0 ] )
$ base : numéro de base, numéro représenté au format de chaîne.
$ exposant : un entier dans Exponent, un format de chaîne.
$ Scale : le nombre de décimales du résultat, la valeur par défaut est 0.
BCPOW peut éviter la perte de précision dans les opérations de points flottants et convient particulièrement à un grand nombre et à des exigences de précision élevée.
Les méthodes de notation scientifique sont généralement comme un × 10 ^ b , où l'exposant B peut être très grand, et il est facile de déborder ou inexact lorsqu'il est calculé directement avec des nombres de points flottants. En utilisant BCPOW , 10 ^ B peut être calculé avec précision, puis une multiplication de haute précision avec A peut être effectuée, réalisant ainsi un calcul précis de la notation scientifique.
Supposons que nous devons calculer:
3.14159 × 10^20
En utilisant BCPow , nous pouvons écrire ceci:
<?php
$mantissa = '3.14159'; // coefficient
$exponent = '20'; // indice
// calculer 10 de 20 Au pouvoir
$power = bcpow('10', $exponent, 0);
// 乘以coefficient,réserve 5 Numéro décimal
$result = bcmul($mantissa, $power, 5);
echo $result; // Résultat de sortie
?>
Ici, nous utilisons d'abord BCPow pour calculer 10 ^ 20 , obtenir un grand nombre, puis multiplier BCMUL par le coefficient pour garantir une précision élevée.
Pour plus de commodité d'une utilisation répétée, il peut être encapsulé en fonctions:
<?php
function sciNotationCalc(string $mantissa, string $exponent, int $scale = 10): string {
// calculer10deindiceAu pouvoir
$power = bcpow('10', $exponent, 0);
// calculer最终结果
return bcmul($mantissa, $power, $scale);
}
// Exemple d'utilisation
echo sciNotationCalc('6.02214076', '23', 8); // 6.02214076e+23 de高精度calculer
?>
Dans BCPow , l' exposant Exposant $ doit être un entier, pas une décimale ou un nombre négatif.
Si l'exposant est un nombre négatif, il doit être implémenté à l'aide de BCDIV . Par exemple, calculer 3,14 × 10 ^ -5 , vous pouvez utiliser:
<?php
$mantissa = '3.14';
$exponent = '-5';
// calculer10de5Au pouvoir
$power = bcpow('10', '5', 0);
// calculer 3.14 / 10^5
$result = bcdiv($mantissa, $power, 10);
echo $result;
?>
Le paramètre d'échelle détermine la précision après le point décimal et l'ajuste en fonction des exigences.
Grâce aux méthodes ci-dessus, les programmeurs PHP peuvent réaliser un opération de notation scientifique de haute précision sans s'appuyer sur des nombres de points flottants, ce qui convient aux calculs financiers, aux calculs scientifiques et à d'autres scénarios.
Si vous souhaitez en savoir plus sur les fonctions mathématiques de haute précision PHP, vous pouvez accéder:
<?php
// Reportez-vous à l'exemple de documentation officielle
$url = 'https://m66.net/manual/en/book.bc.php';
echo "PHP BCMath Documentation officielle:" . $url;
?>