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