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

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

PHPのfmod()関数は、被除数(割られる数)を除数(割る数)で割ったときの剰余(あまり)を返す関数です。整数だけでなく、浮動小数点数(float)同士の剰余も計算できるのが特徴で、通常の剰余演算子「%」では扱えない小数の計算に活用できます。

基本構文

fmod(被除数, 除数)

パラメータ

  • 被除数(dividend) − 割られる側の数値を指定します。

  • 除数(divisor) − 割る側の数値を指定します。

戻り値

被除数を除数で割った結果の剰余(float型)を返します。戻り値は常に被除数と同じ符号になります。なお、除数に0を指定した場合は警告が発生し、NANが返されるので注意が必要です。

使用例

<?php
    $p = 30;
    $q = 9;
    $remainder = fmod($p, $q);
    echo $remainder;
?>

実行結果

3

この例では、30を9で割ると商は3、余りは3となるため、「3」が出力されます。

浮動小数点数での計算例

<?php
    echo fmod(10.5, 3);   // 結果: 1.5
    echo fmod(-10.5, 3);  // 結果: -1.5
?>

「%」演算子との違い

剰余演算子「%」はオペランドを整数に変換してから計算するため、小数を含む計算には使えません。一方、fmod()関数は引数をfloatとして扱うため、次のような違いが生じます。

<?php
    echo 5.5 % 2;      // 結果: 1(整数に変換されて計算される)
    echo fmod(5.5, 2); // 結果: 1.5(小数のまま正確に計算される)
?>

小数を含む剰余計算を行いたい場合は、必ずfmod()関数を使用するようにしましょう。

  1. PHPのlog()関数とは?自然対数の計算方法と使い方を解説

    定義と使い方log() 関数は、数値の自然対数(natural logarithm)を計算します。対数とは、指数関数の逆演算のことです。たとえば 102=100 という関係は「log10100=2」と表せます。自然対数はオイラー数 e を底として計算され、PHP では定義済み定数 M_E によって e の値(2.7182818284590452354)が提供されています。具体例を挙げると、exp(4.60517018599)=100(つまり e4.60517018599=100)が成り立つため、loge100=4.60517018599 となります。PHP では、この自然対数(loge)を l

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

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