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

PHPのbcmod()関数を使って任意精度の数値の剰余(モジュロ)を求める方法

PHPでは、bcmod() 関数を使用することで、任意精度(BCMath)の数値の剰余(モジュロ)を計算できます。この関数は数値を文字列型として受け取り、指定された精度に従って演算を行い、剰余の結果を返します。つまり、$dividend$modulus で割った余りを取得する関数です。$modulus が 0 でない限り、結果は $dividend と同じ符号になります。

構文

bcmod(string $dividend, string $modulus, int $scale = 0)

補足:上記の構文は $dividend$modulus で割った余りを返します。$modulus が 0 でない場合、結果は $dividend と同じ符号になります。

パラメータ

bcmod() 関数は、次の2つの必須パラメータと1つのオプションパラメータを受け取ります。

  • $dividend − 割られる数(被除数)を表す文字列型のパラメータです。

  • $modulus − 法(剰余を求めるための除数)を表す文字列型のパラメータです。

  • $scale − 小数点以下の桁数を指定するオプションの整数パラメータです(PHP 7.2.0 以降で利用可能)。デフォルトは 0 です。

戻り値

bcmod() 関数は、被除数を法で割ったときの剰余を文字列として返します。法が 0 の場合、PHP 8.0 以降では ValueError がスローされ、それ以前のバージョンでは null が返されます。

例1:scale パラメータを使用しない場合

<?php
    // 任意精度の入力数値
    $dividend = "25.666";
    $modulus = "7";

    // 剰余を計算
    $result = bcmod($dividend, $modulus);
    echo "Output without using scale value: ", $result;
?>

出力結果

Output without using scale value: 4

scale を指定しない場合、小数部分は無視され、整数部のみの剰余が返されます。

例2:scale パラメータを使用する場合

次に、同じ入力値に対して scale 値として 4 を指定し、出力結果を確認してみましょう。

<?php
    // 任意精度の入力数値
    $dividend = "25.666";
    $modulus = "7";

    // scale 値に 4 を指定
    $scaleVal = 4;

    // 剰余を計算
    $result = bcmod($dividend, $modulus, $scaleVal);
    echo "Output with scale value: ", $result;
?>

出力結果

Output with scale value: 4.6660

このように scale を指定すると、小数点以下の桁数まで考慮した剰余が計算され、結果は指定した桁数で整形されて返されます。

例3:bcscale() と組み合わせた使用例

<?php
    bcscale(1);

    // PHP 7.2.0 以降では 0.5、それ以前では 0 を返す
    echo bcmod('5.7', '1.3');
?>

出力結果

0.5

bcscale() 関数を使うことで、すべての BCMath 関数に対してデフォルトの scale 値を設定できます。なお、scale パラメータは PHP 7.2.0 以降で追加された機能ですので、古いバージョンの PHP では使用できない点に注意してください。

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

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

  2. ExcelのROUND関数で数値を丸める方法|四捨五入をわかりやすく解説

    Excelで資料を見やすく整えたいとき、数値を小数点以下や整数単位で丸めると、ぐっと読みやすくなります。数値を丸めるということは、重要度の低い桁を取り除くことを意味します。その結果、必要な精度を保ちながら、より見栄えの良い値に仕上げることができます。 丸め処理は、概算を示したり、数値を扱いやすくしたりする目的でよく使われます。たとえば、割引率を計算して「17.3587563」という数値が出た場合、小数第1位で丸めれば「17.4%」となり、はるかに見やすくなります。この記事では、ROUND関数を使って数値を丸める方法を詳しくご紹介します。 ExcelのROUND関数とは ROUND関数は、Ex