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

PHPのfmod()関数とは?浮動小数点数の剰余を求める方法を解説

PHPには、整数の剰余を求める「%」演算子がありますが、浮動小数点数の剰余を求めたい場合にはfmod()関数を使用します。この記事では、fmod()関数の定義、構文、パラメータ、戻り値に加え、符号の扱いや0を含む場合の挙動まで、具体例とともにわかりやすく解説します。


定義と使い方

fmodは「floating modulo(浮動小数点剰余)」の略称です。この関数は、2つの浮動小数点数を除算した際の余り(剰余)を返します。x ÷ y の商を i、余りを r とすると、次の関係が成り立ちます。

x = y × i + r

このとき、fmod(x, y)r を返します。

構文

fmod ( float $x , float $y ) : float

パラメータ

番号パラメータと説明
1x
除算式における被除数(分子)にあたる値です。
2y
除算式における除数(分母)にあたる値です。

戻り値

PHPのfmod()関数は、xy で除算した際の浮動小数点数の剰余を返します。剰余は被除数 x の符号を引き継ぐという特徴があります。

対応するPHPバージョン

この関数は、PHP 4.x、PHP 5.x、PHP 7.x のすべてのバージョンで利用可能です。

補足:%演算子との違い

PHPの「%」演算子はオペランドを整数に変換してから計算を行うため、浮動小数点数に対しては正確な結果が得られません。浮動小数点数の剰余を求める場合は、必ず fmod() 関数を使用してください。

使用例1:基本的な剰余計算

次の例では、5.25 を 1.5 で割った余りを計算し、0.75 を返します。

<?php
    $x=5.25;
    $y=1.5;
    $r=fmod($x, $y);
    echo "fmod(" . $x . "," . $y . ") = " . $r;
?>

出力結果

上記のコードを実行すると、以下の結果が出力されます。

fmod(5.25,1.5) = 0.75

使用例2:被除数が負の場合

次の例では、被除数(分子)が負の値です。剰余は被除数の符号を引き継ぐため、結果も負の値になります。

<?php
    $x=-10;
    $y=3;
    $r=fmod($x, $y);
    echo "fmod(" . $x . "," . $y . ") = " . $r;
?>

出力結果

上記のコードを実行すると、以下の結果が出力されます。

fmod(-10,3) = -1

使用例3:両方の引数が負の場合

次の例では、両方の引数(-10 と -3)が負の値です。剰余は被除数の符号を引き継ぐため、結果は -1 となります。

<?php
    $x=-10;
    $y=-3;
    $r=fmod($x, $y);
    echo "fmod(" . $x . "," . $y . ") = " . $r;
?>

出力結果

上記のコードを実行すると、以下の結果が出力されます。

fmod(-10,-3) = -1

使用例4:0を含む場合の挙動

被除数が 0 で除数が非ゼロの場合、剰余は 0 になります。一方、除数が 0 の場合、剰余は NAN(Not a Number)となるので注意が必要です。

<?php
    $x=0;
    $y=3.33;
    $r=fmod($x, $y);
    echo "fmod(" . $x . "," . $y . ") = " . $r . "\n";
    $r=fmod($y, $x);
    echo "fmod(" . $y . "," . $x . ") = " . $r;
?>

出力結果

上記のコードを実行すると、以下の結果が出力されます。

fmod(0,3.33) = 0
fmod(3.33,0) = NAN
  1. PHPのfmod()関数とは?浮動小数点数の剰余を求める方法を解説

    PHPには、整数の剰余を求める「%」演算子がありますが、浮動小数点数の剰余を求めたい場合にはfmod()関数を使用します。この記事では、fmod()関数の定義、構文、パラメータ、戻り値に加え、符号の扱いや0を含む場合の挙動まで、具体例とともにわかりやすく解説します。 定義と使い方 fmodは「floating modulo(浮動小数点剰余)」の略称です。この関数は、2つの浮動小数点数を除算した際の余り(剰余)を返します。x ÷ y の商を i、余りを r とすると、次の関係が成り立ちます。 x = y × i + r このとき、fmod(x, y) は r を返します。 構文 fmod (

  2. PHPのfmod()関数とは?浮動小数点数の剰余を求める方法を解説

    PHPのfmod()関数は、被除数(割られる数)を除数(割る数)で割ったときの剰余(あまり)を返す関数です。整数だけでなく、浮動小数点数(float)同士の剰余も計算できるのが特徴で、通常の剰余演算子「%」では扱えない小数の計算に活用できます。基本構文fmod(被除数, 除数)パラメータ被除数(dividend) − 割られる側の数値を指定します。除数(divisor) − 割る側の数値を指定します。戻り値被除数を除数で割った結果の剰余(float型)を返します。戻り値は常に被除数と同じ符号になります。なお、除数に0を指定した場合は警告が発生し、NANが返されるので注意が必要です。使用例<