プログラムを書いていると、
「小数点を整数に丸めたい」という場面がよくあります。
例えば以下のようなケースです。
- レビュー評価を整数にしたい
- 金額計算で小数点を処理したい
- 表示用に数値を丸めたい
PHPでは、小数点の丸め方によって以下の関数を使い分けます。
| 丸め方 | 関数 |
|---|---|
| 切り上げ | ceil() |
| 切り捨て | floor() |
| 四捨五入 | round() |
この記事では、それぞれの関数の使い方と、覚えやすいイメージも紹介します。
切り上げ:ceil()
ceil() は常に切り上げをする関数です。
例
echo ceil(3.1); // 4
echo ceil(3.5); // 4
echo ceil(3.9); // 4結果
| 数値 | 結果 |
|---|---|
| 3.1 | 4 |
| 3.5 | 4 |
| 3.9 | 4 |
イメージ
「天井まで持ち上げる」
ceil はceiling(天井)の略です。
つまり
数値を天井まで押し上げる
というイメージです。
3.1 → 天井 → 4切り捨て:floor()
floor() は常に切り捨てをする関数です。
例
echo floor(3.1); // 3
echo floor(3.5); // 3
echo floor(3.9); // 3結果
| 数値 | 結果 |
|---|---|
| 3.1 | 3 |
| 3.5 | 3 |
| 3.9 | 3 |
イメージ
floor はfloor(床)を意味します。
つまり
数値を床まで落とす
というイメージです。
3.9 ↓ 床 ↓ 3四捨五入:round()
round() は、最も一般的な四捨五入を行う関数です。
例
echo round(3.2); // 3
echo round(3.5); // 4
echo round(3.8); // 4結果
| 数値 | 結果 |
|---|---|
| 3.2 | 3 |
| 3.5 | 4 |
| 3.8 | 4 |
ポイント
小数点が
- 0〜4 → 切り捨て
- 5〜9 → 切り上げ
になります。
小数点の桁数も指定できる
echo round(3.14159, 2); // 3.14第2引数に桁数を指定すると、その桁で四捨五入できます。
覚え方
丸め関数は建物で覚えると一発で覚えられます。
| 関数 | イメージ | 意味 |
|---|---|---|
| ceil | 天井 | 上に上げる |
| floor | 床 | 下に落とす |
| round | 四捨五入 | 普通の丸め |
つまり
- ceil → 天井
- floor → 床
これだけ覚えれば忘れません。
round() と number_format() の違い
PHPで小数点を扱うときに、もう一つよく使う関数があります。
それがnumber_format()です。
しかしこの関数は、round() と目的が違うので注意が必要です。
| 関数 | 目的 |
|---|---|
round() | 数値を四捨五入する |
number_format() | 数値を見やすく表示する |
round() は「計算用」
round()は数値として丸める関数です。
$score = 3.56;
$result = round($score, 1);
echo $result;結果
3.6この値は数値(float)なので、そのまま計算に使うことができます。
$price = round(99.8);
$total = $price * 2;number_format() は「表示用」
number_format() は表示を整える関数です。
$score = 3.5;
echo number_format($score, 1);結果
3.5また、以下のような桁区切りにも使えます。
echo number_format(1234567);結果
1,234,567実は round() と動きも少し違う
例えば5を小数点1桁で表示するとき。
round()
echo round(5, 1);結果
5number_format()
echo number_format(5, 1);結果
5.0number_format()は指定した桁数を必ず表示します。
もう一つ重要な違い(型)
実はこの2つは、返り値の型も違います。
| 関数 | 型 |
|---|---|
| round() | 数値(float) |
| number_format() | 文字列(string) |
例
$a = round(3.5);
$b = number_format(3.5, 1);
var_dump($a);
var_dump($b);結果
float(4)
string(3) "3.5"つまり
round()→ 計算用number_format()→ 表示用
と覚えるのが一番わかりやすいです。
まとめ
PHPで小数点を丸める関数は次の3つです。
| 丸め方 | 関数 |
|---|---|
| 切り上げ | ceil() |
| 切り捨て | floor() |
| 四捨五入 | round() |
覚え方のポイントは建物のイメージです。
ceil→ ceiling(天井) → 上へfloor→ floor(床) → 下へ
このイメージで覚えておくと、実装時に迷わなくなります。
そして、round()とnumber_format()の違いは以下です。
| 関数 | 目的 | 型 |
|---|---|---|
round() | 数値を四捨五入する | 数値(float) |
number_format() | 数値を見やすく表示する | 文字列(string) |
すべての関数の役割や違いを理解し、開発効率を上げていきましょう。
