PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHP – bcsub()関数を使って任意精度の数値を減算する方法

PHPのbcsub()数学関数は、任意精度(arbitrary precision)の数値を別の数値から減算するために使用されます。この関数は2つの任意精度数値を文字列として受け取り、指定された精度にスケーリングした上で、その減算結果を返します。

構文

string bcsub($num_str1, $num_str2, $scaleVal)

パラメータ

bcsub()関数は、$num_str1$num_str2$scaleVal の3つのパラメータを受け取ります。

  • $num_str1 − 減算の左オペランドを表す文字列型のパラメータです。

  • $num_str2 − 減算の右オペランドを表す文字列型のパラメータです。

  • $scaleVal − 省略可能な整数型のパラメータで、結果の出力における小数点以下の桁数を設定します。デフォルト値は0です。

戻り値

bcsub()関数は、$num_str1$num_str2 の減算結果を文字列(string)として返します。

例1:$scaleVal パラメータを使用しない bcsub() 関数

<?php
    // bcsub()関数の使用例
    // 任意精度の2つの入力数値
    $num_string1 = "10.555";
    $num_string2 = "3";

    // $scaleVal パラメータなしで2つの数値を減算
    $result = bcsub($num_string1, $num_string2);
    echo "Output without scaleVal is: ", $result;
?>

出力

Output without scaleVal is: 7

$scaleVal パラメータを指定しない場合、bcsub() 関数は出力結果から小数点以下を切り捨てます。上記の例では、「10.555 − 3」の計算結果である「7.555」ではなく、小数部分が省略された「7」が出力されています。

例2:$scaleVal パラメータを使用する bcsub() 関数

次に、同じ入力値に対して scaleVal を 3 に設定して実行してみましょう。この場合、出力には小数点以下3桁までが表示されます。

<?php
    // bcsub()関数の使用例
    // 任意精度の2つの入力数値
    $num_string1 = "10.5552";
    $num_string2 = "3";

    // scale値として3を指定
    $scaleVal = 3;

    // $scaleVal パラメータありで2つの数値を減算
    $result = bcsub($num_string1, $num_string2, $scaleVal);
    echo "Output with scaleVal is: ", $result;
?>

出力

Output with scaleVal is: 7.555

このように、$scaleVal を指定することで、小数点以下の桁数を制御した高精度な減算処理が可能になります。金額計算など、浮動小数点数の誤差が許容できない場面では、bcsub() をはじめとする BCMath 系の関数が非常に役立ちます。

  1. PHPのimagecreatefrompng()関数でPNGファイルやURLから新しい画像を作成する方法

    PHPのimagecreatefrompng()は、標準で用意されている組み込み関数のひとつで、PNGファイルまたはURLから新しい画像を作成します。指定されたファイル名から取得した画像を表す「画像リソース識別子」を返します。なお、この関数を利用するには、PHP環境にGDライブラリが組み込まれている必要があります。構文resource imagecreatefrompng(string $filename)パラメータimagecreatefrompng()が受け取るパラメータは$filenameのひとつだけです。この引数には、読み込みたいPNG画像のファイル名、または画像へのパス(URL)を指

  2. PHPのimagecreatefromjpeg()関数でJPEGファイルから新しい画像を作成する方法

    imagecreatefromjpeg()は、PHPに組み込まれている関数の一つで、JPEGファイルから新しい画像を生成するために使用されます。指定したファイル名から取得した画像を表す画像リソース識別子(イメージID)を返します。この関数は、GDライブラリが有効になっている環境で動作し、JPEG画像の読み込み、編集、再保存など、さまざまな画像処理の起点としてよく利用されます。構文resource imagecreatefromjpeg(string $filename)パラメータimagecreatefromjpeg()が受け取るパラメータは$filenameの1つだけです。ここには、読み込む