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

PHP – bcscale()関数でbc数学関数全般のデフォルトスケールパラメータを設定・取得する方法

PHPのbcscale()関数は、すべてのbc数学関数に対してデフォルトのスケール(小数点以下の桁数)を一括設定するための関数です。ここで設定した値は、以降に呼び出されるbc数学関数のうち、明示的にスケールパラメータを指定しなかったものすべてに自動的に適用されます。任意精度の数値計算を行う際に、毎回スケールを指定する手間を省ける便利な関数です。

構文

int bcscale($scale)

パラメータ

bcscale()関数が受け付けるパラメータは1つだけで、必須の整数型です。このパラメータには、小数点以下の桁数を指定します。デフォルト値は0です。

戻り値

bcscale()関数は、設定変更前の古いスケール値を返します。なお、PHP 8.0未満では成功時にTRUE(bool型)を返す仕様だったため、利用しているPHPのバージョンによって戻り値の扱いが異なる点には注意してください。

使用例1:デフォルトスケールの設定

<?php
    // デフォルトスケールを5に設定
    bcscale(5);

    // デフォルトスケール(5)が適用される
    echo bcadd('107', '6.5596'), PHP_EOL;

    // 明示的にスケール1を指定した場合はそちらが優先される
    echo bcadd('107', '6.55957', 1), PHP_EOL;

    // デフォルトスケール(5)が適用される
    echo bcadd('107', '6.55957'), PHP_EOL;
?>

出力結果

113.55960
113.5
113.55957

この実行結果から、スケールを指定しない呼び出しにはbcscale()で設定した値が使われ、第3引数で明示的にスケールを渡した場合にはそちらが優先されることが分かります。

使用例2:途中でデフォルトスケールを変更する

<?php
    // デフォルトスケールを5に設定
    bcscale(5);

    // デフォルトスケール(5)が適用される
    echo bcadd('107', '6.5596'), PHP_EOL;

    // 明示的にスケール1を指定した場合はそちらが優先される
    echo bcadd('107', '6.55957', 1), PHP_EOL;

    // デフォルトスケールを3に変更
    bcscale(3);

    // 変更後のデフォルトスケール(3)が適用される
    echo bcadd('107', '6.55957'), PHP_EOL;
?>

出力結果

113.55960
113.5
113.559

このように、プログラムの途中で再度bcscale()を呼び出せば、それ以降のbc数学関数には新しいデフォルトスケールが適用されます。金額計算など小数の桁数を揃えたい場面で活用すれば、個所ごとの指定が不要になり、コード全体の可読性と保守性を高めることができるでしょう。

  1. PHPのimageistruecolor()関数で画像がトゥルーカラー画像かどうかを判定する方法

    imageistruecolor() は、PHPに標準で組み込まれている関数の一つで、指定された画像がトゥルーカラー画像であるかどうかを判定するために使用されます。トゥルーカラー画像とは、各ピクセルがRGB(赤・緑・青)のカラー値によって表現される画像のことです。構文bool imageistruecolor(resource $image)パラメータimageistruecolor() 関数は、1つのパラメータ $image を受け取ります。このパラメータには、判定対象となる画像リソースを渡します。戻り値imageistruecolor() は、指定された画像がトゥルーカラー画像であれば t

  2. PHPのimagecrop()関数で画像を指定した矩形領域にトリミングする方法

    imagecrop()関数とはimagecrop()は、PHPに組み込まれている関数で、画像を指定した矩形領域にトリミングするために使用されます。指定された矩形領域から画像を切り取り、出力画像を返します。なお、元の画像リソース自体は変更されません。構文resource imagecrop ($image, $rect)パラメータimagecrop()は、$imageと$rectの2つのパラメータを受け取ります。$image − imagecreatetruecolor()やimagecreatefrompng()などの画像作成関数によって返される画像リソースです。処理対象の画像を指定します。$