Position actuelle: Accueil> Derniers articles> Comment faire fonctionner BCSQRT avec BCSCALE? Analyse des instances de calcul de haute précision dans PHP

Comment faire fonctionner BCSQRT avec BCSCALE? Analyse des instances de calcul de haute précision dans PHP

gitbox 2025-07-18

En PHP, lors de la réalisation de calculs de haute précision, nous utilisons généralement les différentes fonctions fournies par l'extension BCMATH . Parmi eux, BCSQRT et BCSCALE sont deux fonctions très importantes. BCSQRT est utilisé pour calculer la racine carrée d'un nombre, tandis que BCSCALE est utilisé pour définir la précision globale de fonctionnement de haute précision. Comprendre comment utiliser ces deux fonctions ensemble peut nous aider à obtenir des résultats plus précis lorsqu'ils traitent des opérations mathématiques de haute précision.

Qu'est-ce que BCSQRT?

La fonction BCSQRT est utilisée pour calculer la racine carrée d'un numéro de haute précision. Son utilisation de base est la suivante:

 <span><span><span class="hljs-title function_ invoke__">bcsqrt</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$num</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$scale</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>
</span></span>
  • $ num : le numéro (formulaire de chaîne) pour calculer la racine carrée.

  • $ Scale : Paramètre facultatif, spécifiant la précision du résultat de retour.

Si aucune précision n'est spécifiée, BCSQRT utilisera la précision globale actuelle, qui est généralement définie par BCSCALE .

Qu'est-ce que BCCALE?

La fonction BCCALE est utilisée pour définir la précision numérique globale. Sa fonction est de contrôler les décimales par défaut pour toutes les opérations de haute précision (y compris l'addition, la soustraction, la multiplication, la division, etc.). L'utilisation de base est la suivante:

 <span><span><span class="hljs-title function_ invoke__">bcscale</span></span><span>(</span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$scale</span></span><span>): </span><span><span class="hljs-keyword">void</span></span><span>
</span></span>
  • $ Scale : le nombre de décimales définies.

Lorsque vous effectuez des opérations de haute précision telles que BCSQRT , si aucune précision n'est spécifiée pour l'opération, elle utilisera la précision globale définie via BCSCALE .

Comment utiliser BCSQRT et BCSCALE ensemble?

Dans les calculs de haute précision, la précision de résultats par défaut de BCSQRT dépend généralement de la précision globale définie par BCSCALE . Si vous souhaitez obtenir un résultat root carré plus précis, vous pouvez améliorer la précision en ajustant BCSCALE ou spécifier le paramètre d'échelle directement dans BCSQRT .

Exemple 1: Définissez la précision globale via BCCALE

 <span><span><span class="hljs-comment">// Définir la précision mondiale pour10Numéro décimal</span></span><span>
</span><span><span class="hljs-title function_ invoke__">bcscale</span></span><span>(</span><span><span class="hljs-number">10</span></span><span>);

</span><span><span class="hljs-comment">// Calculez la racine carrée du numéro</span></span><span>
</span><span><span class="hljs-variable">$number</span></span><span> = </span><span><span class="hljs-string">"123.456"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">bcsqrt</span></span><span>(</span><span><span class="hljs-variable">$number</span></span><span>);

</span><span><span class="hljs-comment">// Résultat de sortie</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Résultat de la racine carrée: "</span></span><span> . </span><span><span class="hljs-variable">$result</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span></span>

Dans cet exemple, nous avons réglé la précision globale à 10 décimales via BCCALE (10) . Ensuite, la racine carrée de 123,456 a été calculée en utilisant le BCSQRT , et le résultat a été que 10 décimales ont été conservées.

Exemple 2: Spécification de la précision dans BCSQRT

Parfois, vous pouvez spécifier la précision d'une opération spécifique sans affecter les paramètres globaux. À l'heure actuelle, vous pouvez transmettre directement le paramètre d'échelle dans la fonction BCSQRT :

 <span><span><span class="hljs-comment">// Définir la précision mondiale pour2Numéro décimal</span></span><span>
</span><span><span class="hljs-title function_ invoke__">bcscale</span></span><span>(</span><span><span class="hljs-number">2</span></span><span>);

</span><span><span class="hljs-comment">// Calculez la racine carrée du numéro,et spécifier la précision des résultats comme6Numéro décimal</span></span><span>
</span><span><span class="hljs-variable">$number</span></span><span> = </span><span><span class="hljs-string">"123.456"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">bcsqrt</span></span><span>(</span><span><span class="hljs-variable">$number</span></span><span>, </span><span><span class="hljs-number">6</span></span><span>);

</span><span><span class="hljs-comment">// Résultat de sortie</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Résultat de la racine carrée: "</span></span><span> . </span><span><span class="hljs-variable">$result</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span></span>

Dans cet exemple, nous avons d'abord défini la précision globale sur 2 décimales, mais lorsque nous appelons BCSQRT , nous spécifions la précision de 6 décimales pour l'opération, afin que les résultats de calcul soient exacts à 6 décimales sans être affectés par la précision globale.

Exemple 3: Utilisez BCSQRT avec d'autres opérations de haute précision

BCSQRT doit souvent être utilisé en combinaison avec d'autres opérations de haute précision, telles que les calculs complexes de co-compléter avec des fonctions telles que BCADD , BCDIV , etc. Voici un exemple combinant BCSQRT avec BCADD :

 <span><span><span class="hljs-comment">// Définir la précision mondiale pour5Numéro décimal</span></span><span>
</span><span><span class="hljs-title function_ invoke__">bcscale</span></span><span>(</span><span><span class="hljs-number">5</span></span><span>);

</span><span><span class="hljs-comment">// Calculez les racines carrées de deux nombres et leurs sommes</span></span><span>
</span><span><span class="hljs-variable">$number1</span></span><span> = </span><span><span class="hljs-string">"25.0"</span></span><span>;
</span><span><span class="hljs-variable">$number2</span></span><span> = </span><span><span class="hljs-string">"16.0"</span></span><span>;

</span><span><span class="hljs-comment">// Calculer la racine carrée</span></span><span>
</span><span><span class="hljs-variable">$sqrt1</span></span><span> = </span><span><span class="hljs-title function_ invoke__">bcsqrt</span></span><span>(</span><span><span class="hljs-variable">$number1</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>);
</span><span><span class="hljs-variable">$sqrt2</span></span><span> = </span><span><span class="hljs-title function_ invoke__">bcsqrt</span></span><span>(</span><span><span class="hljs-variable">$number2</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>);

</span><span><span class="hljs-comment">// 计算Résultat de la racine carrée的和</span></span><span>
</span><span><span class="hljs-variable">$sum</span></span><span> = </span><span><span class="hljs-title function_ invoke__">bcadd</span></span><span>(</span><span><span class="hljs-variable">$sqrt1</span></span><span>, </span><span><span class="hljs-variable">$sqrt2</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>);

</span><span><span class="hljs-comment">// Résultat de sortie</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Racine carrée1: "</span></span><span> . </span><span><span class="hljs-variable">$sqrt1</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Racine carrée2: "</span></span><span> . </span><span><span class="hljs-variable">$sqrt2</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Racine carrée之和: "</span></span><span> . </span><span><span class="hljs-variable">$sum</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span></span>

Dans cet exemple, nous calculons d'abord les racines carrées de 25,0 et 16,0 , puis les ajoutons en utilisant BCADD . Pendant tout le processus de calcul, nous avons spécifié la précision décimale à 5 chiffres.

Résumer

En utilisant BCSQRT et BCSCALE conjointement avec nous, nous pouvons effectuer des calculs de haute précision plus précisément. Dans les applications pratiques, BCSCALE peut contrôler la précision globale, tandis que BCSQRT permet le calcul de la précision spécifiée pour chaque racine carrée. Cette combinaison flexible peut nous aider à obtenir la précision dont nous avons besoin lorsque nous traitons de champs tels que la finance, l'informatique scientifique, etc.