PHPでは、高精度計算を実行する場合、通常、 BCMATH拡張機能によって提供されるさまざまな機能を使用します。その中で、 BCSQRTとBCScaleは2つの非常に重要な機能です。 BCSQRTは、数の平方根を計算するために使用されますが、 BCScaleはグローバルな高精度操作の精度を設定するために使用されます。これら2つの機能を一緒に使用する方法を理解することは、高精度の数学操作を扱う際に、より正確な結果を得るのに役立ちます。
BCSQRT関数は、高精度数の平方根を計算するために使用されます。その基本的な使用法は次のとおりです。
<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 :平方根を計算する番号(文字列形式)。
$スケール:オプションのパラメーター、返品結果の精度を指定します。
精度が指定されていない場合、 BCSQRTは通常、 BCScaleによって設定される現在のグローバル精度を使用します。
BCCALE関数は、グローバルな数値精度を設定するために使用されます。その機能は、すべての高精度操作(追加、減算、乗算、分割などを含む)のデフォルトの小数の場所を制御することです。基本的な使用法は次のとおりです。
<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>
$スケール:設定された小数点以下の場所の数。
BCSQRTなどの高精度操作を実行すると、操作の精度が指定されていない場合、 BCScaleを介してグローバル精度セットを使用します。
高精度計算では、 BCSQRTのデフォルトの結果精度は通常、 BCScaleによって設定されたグローバル精度に依存します。より正確な平方根の結果を取得する場合は、 BCScaleを調整することで精度を向上させるか、 BCSQRTのスケールパラメーターを直接指定できます。
<span><span><span class="hljs-comment">// グローバルな精度をに設定します10位小数</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">// 数の平方根を計算します</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">// 出力結果</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"平方根の結果: "</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>
この例では、 bccale(10)を介して10桁にグローバル精度を設定します。次に、 123.456の平方根がBCSQRTを使用して計算され、その結果、10桁の場所が保持されました。
グローバルな設定に影響を与えることなく、特定の操作の精度を指定する場合があります。この時点で、スケールパラメーターをBCSQRT関数に直接渡すことができます。
<span><span><span class="hljs-comment">// グローバルな精度をに設定します2位小数</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">// 数の平方根を計算します,結果の精度を指定します6位小数</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">// 出力結果</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"平方根の結果: "</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>
この例では、最初にグローバル精度を2つの小数点に設定しますが、 BCSQRTを呼び出すと、操作の6桁の精度を指定して、計算結果がグローバルな精度の影響を受けずに6桁の場所に正確になります。
BCSQRTは、 BCADD 、 BCDIVなどの関数と共同複雑な複雑な計算など、他の高精度操作と組み合わせて使用する必要があることがよくあります。以下は、 BCSQRTとBCADDを組み合わせた例です。
<span><span><span class="hljs-comment">// グローバルな精度をに設定します5位小数</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">// 2つの数字の平方根とその合計を計算する</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">// 平方根を計算します</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">// 平方根を計算しますの結果的和</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">// 出力結果</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"平方根1: "</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">"平方根2: "</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">"正方形の根の合計: "</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>
この例では、最初に25.0と16.0の正方形の根を計算し、次にBCADDを使用して追加します。計算プロセス全体で、5桁の小数の精度を指定しました。
BCSQRTとBCScaleを使用して当社と併用することにより、高精度計算をより正確に実行できます。実際のアプリケーションでは、 BCSCALEはグローバルな精度を制御できますが、 BCSQRTは各平方根の指定された精度を計算できます。この柔軟な組み合わせは、金融、科学的コンピューティングなどの分野を扱うときに必要な精度を得るのに役立ちます。