読み込み中...

PHP Round関数解説!7つの実践的な使い方とコード例

PHP Round関数の詳細な使い方とサンプルコード PHP
この記事は約6分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、あなたもPHPのRound関数の使い方をマスターできるようになります。

具体的な使い方から詳細なサンプルコード、そして応用例まで、この便利な関数を解き明かしていきます。

●PHPのRound関数とは?

Round関数はPHPの組み込み関数で、特定の数値を最も近い整数に丸める際に使用されます。

数値の後ろの小数点以下をどうするかを制御したいとき、Round関数が重宝されます。

○Round関数の基本

Round関数の基本的な構文は次のようになります。

round($value, $precision, $mode);

この関数では、最初のパラメーターである$valueに丸めたい値を指定します。

次のパラメーター$precisionは任意で、ここでは小数点以下何桁まで丸めたいかを指定します。

最後の$modeも任意で、どのように丸めるかを指定するための定数を選択できます。

●PHP Round関数の使い方

それでは、実際にPHPのRound関数の使い方を見ていきましょう。

○サンプルコード1:整数への丸め

この例では、単純に小数点以下を丸めて整数にするコードを紹介します。

引数に指定する数値は5.7とします。

<?php
echo round(5.7); //結果:6
?>

上記のコードを実行すると、出力結果は「6」となります。

なぜなら、Round関数はデフォルトで最も近い整数に丸めるからです。

5.7の場合、最も近い整数は「6」なので「6」が出力されます。

○サンプルコード2:小数点以下の丸め

次の例では、小数点以下1桁まで丸めたい場合のコードを紹介します。

引数に指定する数値は3.14159とします。

<?php
echo round(3.14159, 1); //結果:3.1
?>

上記のコードを実行すると、出力結果は「3.1」となります。

このとき、Round関数の第二引数に「1」を指定することで、小数点以下1桁までを残し、それ以降を丸めています。

○サンプルコード3:負の数の丸め

次に、負の数を丸めるコードを紹介します。

この例では、-3.6という数値を丸めています。

<?php
echo round(-3.6); //結果:-4
?>

上記のコードを実行すると、出力結果は「-4」となります。

Round関数は負の数でも正確に機能し、-3.6の最も近い整数である「-4」を出力します。

●Round関数の応用例

それでは、Round関数をさらに効果的に利用するための、いくつかの応用的な例を見ていきましょう。

○サンプルコード4:精度指定の丸め

このコードでは、Round関数の第二引数を利用して、特定の精度で数値を丸める方法を紹介します。

この例では、3.14159を小数点以下第3位まで丸めています。

<?php
echo round(3.14159, 3); //結果:3.142
?>

上記のコードを実行すると、出力結果は「3.142」となります。

第二引数に「3」を指定したことで、小数点以下の第4位を四捨五入して、小数点以下3桁までの数値に丸めることができました。

○サンプルコード5:四捨五入のカスタマイズ

この例では、Round関数の第三引数を使って、四捨五入の方法をカスタマイズするコードを紹介します。

ここでは、0.5を最も近い偶数に丸める方法を紹介します。

<?php
echo round(0.5, 0, PHP_ROUND_HALF_EVEN); //結果:0
?>

上記のコードを実行すると、出力結果は「0」となります。第三引数に「PHP_ROUND_HALF_EVEN」を指定することで、0.5が最も近い偶数、つまり「0」に丸められます。

○サンプルコード6:負の数の精度指定丸め

次の例では、負の数を特定の精度で丸めるコードを紹介します。

ここでは、-3.14159を小数点以下第2位まで丸めています。

<?php
echo round(-3.14159, 2); //結果:-3.14
?>

上記のコードを実行すると、出力結果は「-3.14」となります。

負の数でも、指定した精度まで数値を丸めることができます。

○サンプルコード7:配列内の数値の丸め

最後の例では、配列内のすべての数値を丸めるコードを紹介します。

ここでは、複数の数値を含む配列を作成し、それぞれを整数に丸めています。

<?php
$numbers = [3.6, 5.7, 8.2];
$rounded_numbers = array_map(function($num){
    return round($num);
}, $numbers);
print_r($rounded_numbers); //結果:Array ( [0] => 4 [1]

 => 6 [2] => 8 )
?>

上記のコードを実行すると、出力結果は「Array ( [0] => 4 [1] => 6 [2] => 8 )」となります。

配列のすべての要素がRound関数を通じて丸められ、それぞれ最も近い整数に変換されました。

●Round関数の注意点と対処法

便利な一方で、PHPのRound関数にも注意すべき点があります。

それらを理解し、それに対処するための方法を確認しましょう。

○半偶数丸めの問題点

Round関数の挙動は、通常我々が学校で習う四捨五入とは少し異なる可能性があります。

それは「半偶数丸め」または「銀行家の丸め」と呼ばれるもので、これは小数点以下0.5の場合に最も近い偶数に丸める方法です。

この結果、一見不規則に見える丸めの結果を生むことがあります。

たとえば、次のコードを見てみましょう。

<?php
echo round(1.5); //結果:2
echo round(2.5); //結果:2
?>

上記のコードを実行すると、出力結果は「2」と「2」になります。

一般的な四捨五入の規則に従うと、2.5は3に丸められるべきですが、Round関数では「2」となります。

これは「半偶数丸め」によるものです。

この問題に対処するためには、四捨五入をする前に小数を切り上げたり切り捨てるなど、必要に応じて処理を加えることが考えられます。

○丸め精度と浮動小数点の問題

また、Round関数の第二引数で丸めの精度を指定する際にも注意が必要です。

PHPは内部的に浮動小数点数を扱うため、超高精度の丸めを行うと、結果が予想外になることがあります。

次のコードでは、0.1を14桁まで丸める例を示しています。

<?php
echo round(0.1, 14); //結果:0.10000000000000
?>

上記のコードを実行すると、出力結果は「0.10000000000000」になります。

しかし、この結果は浮動小数点の誤差によるもので、本来の期待値とは異なる場合があります。

この問題を回避するためには、必要以上に高い精度の丸めを避け、必要な精度を超えない範囲で数値を扱うことが推奨されます。

まとめ

以上が、PHPのRound関数の基本的な使い方とその実践的な応用例、そして注意点とその対処法についての解説でした。

Round関数はその使い方次第で非常に便利なツールとなりますが、その一方で半偶数丸めや浮動小数点の問題など、理解しておくべき注意点もあります。

しかし、これらの特性を理解し、適切に対処することで、Round関数はPHPプログラミングのさまざまな場面で有用な助けとなります。

本記事を通じて、Round関数を理解し、自身のコーディングスキルに役立てていただければ幸いです。