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

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

作成日: 更新日:

基本的な使い方

floor関数は、与えられた浮動小数点数(小数値)を、その値以下の最大の整数に切り捨てる関数です。この関数は、数値の小数部分を完全に破棄し、整数部分のみを取得したい場合に利用されます。

具体的な動作として、例えばfloor(3.14)を実行すると、3が返されます。同様に、floor(3.99)の場合も、3.99以下の最大の整数である3が戻り値となります。このことから、floor関数は小数部分がいくら大きくても、元の値を超えない範囲で最も大きい整数を返すことがわかります。

PHPでは、この関数の戻り値は整数型ではなく浮動小数点数型(float)である点に注意が必要です。これは、非常に大きな整数値を扱う際に、PHPの標準の整数型(int)が扱える範囲を超える可能性があるため、一貫してfloat型で結果を返す設計となっています。

また、負の数に対する動作も理解しておきましょう。例えば、floor(-3.14)を実行すると、戻り値は-4となります。これは、-3.14以下の最大の整数が-4であるという定義に基づいています。

このように、floor関数は、数値計算において小数部分を確実に切り捨て、整数値として扱いたい場面で非常に役立つ基本的な関数です。PHP 8においても、この挙動は一貫しており、信頼性の高い数値処理を提供します。

構文(syntax)

1floor(123.45);

引数(parameters)

int|float $num

  • int|float $num: 小数点以下を切り捨てる対象の数値 (整数または浮動小数点数)

戻り値(return)

float

与えられた浮動小数点数(float)以下の最も大きい整数を浮動小数点数(float)型で返します。

サンプルコード

PHPのfloorとceil関数で数値を丸める

1<?php
2
3/**
4 * floor() および ceil() 関数の使用例を示します。
5 *
6 * floor(): 指定された数値を、元の数値以下の最も近い整数に丸めます(小数点以下を切り捨てます)。
7 * ceil(): 指定された数値を、元の数値以上の最も近い整数に丸めます(小数点以下を切り上げます)。
8 * どちらの関数もfloat型を返します。
9 */
10
11echo "--- floor() 関数の使用例 ---\n";
12
13// 正の浮動小数点数
14$value1 = 123.45;
15echo "元の数値: " . $value1 . ", floor() の結果: " . floor($value1) . "\n"; // 出力: 123
16
17// 負の浮動小数点数 (より小さい整数に丸められるため注意)
18$value2 = -123.45;
19echo "元の数値: " . $value2 . ", floor() の結果: " . floor($value2) . "\n"; // 出力: -124
20
21// 整数 (結果は変わらないが float 型で返される)
22$value3 = 123.0;
23echo "元の数値: " . $value3 . ", floor() の結果: " . floor($value3) . "\n"; // 出力: 123
24
25// ゼロ
26$value4 = 0.0;
27echo "元の数値: " . $value4 . ", floor() の結果: " . floor($value4) . "\n"; // 出力: 0
28
29echo "\n--- ceil() 関数の使用例 ---\n";
30
31// 正の浮動小数点数
32$value5 = 123.45;
33echo "元の数値: " . $value5 . ", ceil() の結果: " . ceil($value5) . "\n"; // 出力: 124
34
35// 負の浮動小数点数 (より大きい整数に丸められるため注意)
36$value6 = -123.45;
37echo "元の数値: " . $value6 . ", ceil() の結果: " . ceil($value6) . "\n"; // 出力: -123
38
39// 整数 (結果は変わらないが float 型で返される)
40$value7 = 123.0;
41echo "元の数値: " . $value7 . ", ceil() の結果: " . ceil($value7) . "\n"; // 出力: 123
42
43// ゼロ
44$value8 = 0.0;
45echo "元の数値: " . $value8 . ", ceil() の結果: " . ceil($value8) . "\n"; // 出力: 0
46
47?>

このPHPコードは、数値の丸め処理を行うfloor()関数とceil()関数の基本的な使い方を示しています。

floor()関数は、引数に与えられたint型またはfloat型の数値を、元の数値以下の最も近い整数に丸めます。これは「小数点以下を切り捨てる」と表現されます。例えば、123.45123.0に、-123.45-124.0となります。負の数では元の数値より小さい整数になるため注意が必要です。戻り値は常にfloat型です。

一方、ceil()関数は、引数に与えられたint型またはfloat型の数値を、元の数値以上の最も近い整数に丸めます。これは「小数点以下を切り上げる」と表現されます。例えば、123.45124.0に、-123.45-123.0となります。負の数でも元の数値以上の整数に丸められる点が特徴です。こちらも戻り値は常にfloat型です。

これらの関数は、数値計算において小数点以下の扱いが重要な場面で活用されます。引数が整数であってもfloat型で結果が返されるため、返り値の型に留意して使用してください。

floor()関数およびceil()関数は、引数が整数値であっても戻り値は常にfloat型となる点に注意が必要です。計算結果を厳密に整数として扱いたい場合は、明示的にint型へキャストしてください。また、負の数を扱う際の丸め方には特に注意が必要です。floor()は元の数値以下の最も近い整数に丸めるため、-123.45-124になります。一方、ceil()は元の数値以上の最も近い整数に丸めるため、-123.45-123となります。正の数とは異なる丸め方をするため、意図しない結果にならないよう、これらの挙動を理解して安全にご利用ください。

PHP floor関数で小数点以下を切り捨てる

1<?php
2
3/**
4 * PHPのfloor関数を使って、数値を小数点以下を切り捨てて整数に丸める例を示します。
5 * floor関数は、常に指定された数値以下の最も近い整数を返します。
6 * 戻り値の型は常にfloatです。
7 */
8function demonstrateFloorFunction(): void
9{
10    echo "--- floor() 関数のデモンストレーション ---" . PHP_EOL;
11
12    // 正の浮動小数点数を切り捨てる例
13    $positiveFloat = 3.14;
14    $result1 = floor($positiveFloat);
15    echo "floor(" . $positiveFloat . ") は " . $result1 . " になります。" . PHP_EOL; // 出力: 3.0
16
17    // 正の浮動小数点数を切り捨てる別の例 (小数点以下が大きい場合)
18    $anotherPositiveFloat = 3.99;
19    $result2 = floor($anotherPositiveFloat);
20    echo "floor(" . $anotherPositiveFloat . ") は " . $result2 . " になります。" . PHP_EOL; // 出力: 3.0
21
22    // 負の浮動小数点数を切り捨てる例 (より小さい整数になることに注意)
23    $negativeFloat = -3.14;
24    $result3 = floor($negativeFloat);
25    echo "floor(" . $negativeFloat . ") は " . $result3 . " になります。" . PHP_EOL; // 出力: -4.0
26
27    // 負の浮動小数点数を切り捨てる別の例
28    $anotherNegativeFloat = -3.99;
29    $result4 = floor($anotherNegativeFloat);
30    echo "floor(" . $anotherNegativeFloat . ") は " . $result4 . " になります。" . PHP_EOL; // 出力: -4.0
31
32    // 整数を与えた場合 (float型で返される)
33    $integerValue = 5;
34    $result5 = floor($integerValue);
35    echo "floor(" . $integerValue . ") は " . $result5 . " になります。" . PHP_EOL; // 出力: 5.0
36
37    echo "--- デモンストレーション終了 ---" . PHP_EOL;
38}
39
40// 関数の実行
41demonstrateFloorFunction();
42
43?>

PHPのfloor関数は、与えられた数値の小数点以下を切り捨てて、その数値以下の最も近い整数を返すために利用されます。引数$numには、整数または浮動小数点数を指定することができます。この関数は、どのような数値が渡された場合でも、戻り値の型は常にfloatとなります。

たとえば、floor(3.14)のように正の浮動小数点数を指定すると、結果は3.0となります。小数点以下がどのような値であっても、常に切り捨てられてより小さい整数になります。

一方で、floor(-3.14)のように負の浮動小数点数を指定した場合は注意が必要です。この場合、結果は-4.0となります。これは、-3.14以下の最も近い整数が-4であるためです。同様に、-3.99の場合も結果は-4.0となります。

引数に5のような整数を与えた場合でも、値は変わらず5.0というfloat型で返されます。サンプルコードでは、これらの具体的な挙動がそれぞれ示されており、floor関数の動作を理解するのに役立ちます。

PHPのfloor関数は、指定された数値以下の最も近い整数を返す機能です。特に注意すべき点は、負の数に適用した場合の挙動です。例えば-3.14floor関数に入れると-4.0が返されます。これは一般的な「小数点以下切り捨て」のイメージとは異なり、数値が「より小さい整数」に丸められるため、初心者が混同しやすいポイントです。また、引数が整数であっても、戻り値の型は常にfloat型となります。例えばfloor(5)5.0として扱われますので、厳密に整数型として利用したい場合は明示的な型キャストが必要です。これらの特性を理解して利用することで、期待通りの計算結果を得られ、安全なコード作成に繋がります。

関連コンテンツ

【PHP8.x】floor関数の使い方 | いっしー@Webエンジニア