【PHP8.x】fmod関数の使い方

fmod関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

fmod関数は浮動小数点数(float)の剰余を計算する関数です。この関数は、指定された二つの浮動小数点数を受け取り、第一引数を第二引数で割った際の余りを浮動小数点数として返します。PHPにおける一般的な%(モジュロ)演算子は整数にのみ適用されますが、fmod関数は小数を含む数値の割り算の余りを正確に求めたい場合に非常に有用です。

具体的には、fmod(x, y)という形式で使用され、xyで割った際の剰余が結果となります。この関数の重要な特徴の一つは、戻り値の剰余の符号が常に第一引数xの符号と同じになる点です。

例えば、fmod(10.5, 3.0)を実行すると、1.5が返されます。これは、10.53.0で割ると商が3で、余りが1.5となるためです。また、fmod(-10.5, 3.0)を実行した場合は、被除数である-10.5の符号が負であるため、結果は-1.5となります。

この関数は、例えば時間計算で秒数を分や時間に変換する際に余りの秒数を求めたり、特定の周期を持つ処理で現在の位置を計算する際など、浮動小数点数の精密な剰余が必要とされる様々な場面で利用されます。システムエンジニアを目指す方々にとって、浮動小数点数の剰余計算が必要な際に適切にこの関数を選択することは、正確な数値処理を行う上で不可欠な知識となります。

構文(syntax)

1<?php
2
3$num1 = 10.5;
4$num2 = 3.2;
5$remainder = fmod($num1, $num2);
6
7echo "{$num1}{$num2} で割った浮動小数点数の剰余: " . $remainder;
8
9?>

引数(parameters)

float $num1, float $num2

  • float $num1: 被除数 (割られる数)
  • float $num2: 除数 (割る数)

戻り値(return)

float

fmod関数の戻り値はfloat型です。これは、数値dividndを数値divisorで割ったときの余りを浮動小数点数で返します。

サンプルコード

PHP fmod関数で浮動小数点剰余を計算する

1<?php
2
3// fmod関数は、浮動小数点数の剰余(余り)を計算します。
4// 第1引数($num1)を第2引数($num2)で割ったときの浮動小数点数の余りを返します。
5// 結果の符号は、第1引数の符号と同じになります。
6
7/**
8 * fmod関数の使用例を示します。
9 *
10 * @param float $num1 割られる数(被除数)
11 * @param float $num2 割る数(除数)
12 */
13function demonstrateFmodUsage(float $num1, float $num2): void
14{
15    $result = fmod($num1, $num2);
16    echo "fmod({$num1}, {$num2}) の結果: {$result}" . PHP_EOL;
17
18    // 例えば、fmod(10.5, 3.0) の場合:
19    // 10.5 を 3.0 で割ると商は 3.0、余りは 1.5 になります。
20    // (計算式: 10.5 = 3.0 * 3 + 1.5)
21    // fmod はこの 1.5 を返します。
22}
23
24// === fmod関数の使用例 ===
25
26// 例1: 正の浮動小数点数
27demonstrateFmodUsage(10.5, 3.0); // 出力例: fmod(10.5, 3) の結果: 1.5
28demonstrateFmodUsage(7.3, 2.5);  // 出力例: fmod(7.3, 2.5) の結果: 2.3
29
30// 例2: 割られる数($num1)が負の場合
31// 結果の符号は割られる数と同じになります。
32demonstrateFmodUsage(-10.5, 3.0); // 出力例: fmod(-10.5, 3) の結果: -1.5
33
34// 例3: 割る数($num2)が負の場合
35// 結果の符号はやはり割られる数と同じになります。
36demonstrateFmodUsage(10.5, -3.0); // 出力例: fmod(10.5, -3) の結果: 1.5
37demonstrateFmodUsage(-7.3, -2.5); // 出力例: fmod(-7.3, -2.5) の結果: -2.3
38
39// 注意: PHPの `%` 演算子は整数型にのみ使用できます。
40// 浮動小数点数の剰余を計算する場合は必ず fmod() を使用してください。
41
42?>

PHPのfmod関数は、浮動小数点数の剰余、つまり割り算の余りを計算するための関数です。第一引数($num1)に割られる数(被除数)、第二引数($num2)に割る数(除数)を指定します。どちらの引数も浮動小数点数(float型)である必要があり、計算結果として戻り値も浮動小数点数(float型)を返します。

この関数の重要な特徴は、戻り値の符号が常に第一引数(割られる数)の符号と同じになる点です。例えば、fmod(10.5, 3.0)と計算すると、10.53.0で割った余りである1.5が返されます。もし第一引数が負の値でfmod(-10.5, 3.0)とすると、結果は-1.5となります。

PHPにおける注意点として、通常の剰余演算子である%は整数型にのみ適用されます。そのため、浮動小数点数を使った剰余計算を行いたい場合は、必ずこのfmod関数を使用する必要があります。この関数を正しく理解し利用することは、数値計算を伴うプログラム開発において非常に重要です。

fmod関数は、浮動小数点数の剰余(余り)を計算する際に使用します。PHPの%演算子は整数にのみ適用されるため、浮動小数点数に対して剰余を求める場合は必ずfmod関数をお使いください。この関数の重要な点として、戻り値の符号は常に第一引数(割られる数)の符号と同じになります。第二引数(割る数)の符号が結果に影響を与えることはありませんので、特にご注意ください。引数は両方とも浮動小数点数である必要があります。これにより、意図した通りの浮動小数点数の余りを正確に得ることができます。

関連コンテンツ