fmod

関数の概要

PHPの fmod 関数は、2つの浮動小数点数の割り算における余りを計算します。整数の剰余計算とは異なり、浮動小数点同士で計算するため、小数点以下の値も含めた余りを正確に求めることができます。数値計算や物理シミュレーションなど、浮動小数点での余りが必要な場面でよく利用されます。

パラメータの説明

  • num1:被除数となる浮動小数点数(floatまたは整数)。
  • num2:除数となる浮動小数点数(floatまたは整数)。0を指定するとエラーになるので注意が必要です。

戻り値

fmodは、num1num2で割った余りを浮動小数点数で返します。戻り値は常に num2 と同じ符号を持ちませんが、ゼロの符号に関しては環境によって異なる場合があります。

使用例を複数

基本的な使い方

<?php
echo fmod(5.7, 1.3); // 出力: 0.5
?>

この例では、5.7 ÷ 1.3 の余りを計算しています。結果は 0.5 となります。

負の値を扱う場合

<?php
echo fmod(-5.7, 1.3); // 出力: -0.5
echo fmod(5.7, -1.3); // 出力: 0.5
echo fmod(-5.7, -1.3); // 出力: -0.5
?>

被除数または除数が負の場合、余りの符号は被除数の符号に従います。符号の違いに注意が必要です。

整数の余りと比較

<?php
echo fmod(10, 3); // 出力: 1
echo 10 % 3;       // 出力: 1

// 小数点以下を含む場合
echo fmod(10.5, 3); // 出力: 1.5
// 10.5 % 3 はエラーまたは意図しない結果になる
?>

%演算子は整数に対してのみ適用されるため、小数点の余りを計算したいときは fmod を使う必要があります。

関連する関数

  • abs():数値の絶対値を求める
  • round():数値を丸める
  • floor():小数点以下を切り捨てる
  • ceil():小数点以下を切り上げる
  • intdiv():整数除算を行う(余りを出さない)

まとめ

fmod関数は、PHPで浮動小数点数の余りを正確に求めたい場合に非常に便利です。整数の剰余演算子では扱えない小数点以下の計算にも対応しているため、数値計算や科学技術計算で重宝します。符号の扱いなど注意点もありますが、正しく使えば実務でも役立つ関数です。