【PHP8.x】round()関数の使い方
round関数の使い方について、初心者にもわかりやすく解説します。
基本的な使い方
round関数は数値を指定された精度で丸めることを実行する関数です。この関数は、与えられた浮動小数点数(小数を含む数値)を、指定した小数点以下の桁数、または小数点より上の桁数で丸める際に使用されます。
この関数には、丸めたい数値を表す$num、丸める桁数を指定するオプションの$precision、そして丸めモードを指定するオプションの$modeの三つの引数を渡すことができます。$precisionが0の場合、最も近い整数に丸められます。正の整数を指定すると小数点以下の桁数で丸め、例えば1を指定すると小数点以下第1位まで、2を指定すると小数点以下第2位まで丸めます。負の整数を指定すると小数点より上の桁数で丸め、例えば-1を指定すると一の位で丸め、-2を指定すると十の位で丸めることになります。
丸めモードを指定する$mode引数には、いくつかの定数を使用できます。デフォルトはPHP_ROUND_HALF_UPで、これはちょうど中間の値(例えば2.5など)を切り上げる動作をします。その他にも、PHP_ROUND_HALF_DOWNは中間の値を切り捨て、PHP_ROUND_HALF_EVENは中間の値を最も近い偶数に丸め、PHP_ROUND_HALF_ODDは最も近い奇数に丸めるなどのモードが用意されています。
round関数は、丸められた結果の数値を浮動小数点数として返します。例えば、round(3.14159, 2)とすると3.14が返され、round(1234.56, -2)とすると1200が返されます。数値計算において、特定の精度で数値を扱う必要がある場合に非常に便利な関数です。
構文(syntax)
1round(3.14159);
引数(parameters)
int|float $num, int $precision = 0, RoundingMode|int $mode = \RoundingMode::HalfUp
- int|float $num: 丸めたい数値(整数または浮動小数点数)
- int $precision = 0: 小数点以下の桁数を指定します。デフォルトは0で、整数に丸められます。
- RoundingMode|int $mode = \RoundingMode::HalfUp: 丸めモードを指定します。デフォルトはHalfUp(四捨五入)です。
戻り値(return)
float
指定された数値を指定された桁数に丸めた浮動小数点数を返します。
サンプルコード
PHP round関数で数値を切り上げる
1<?php 2 3/** 4 * PHPのround関数を使って、数値を「切り上げ」(正の無限大方向へ丸める)る方法を示します。 5 * キーワード「php roundup」に対応する挙動です。 6 * PHP 8以降では、丸めモードをより明確に指定するためにRoundingMode enumが導入されています。 7 */ 8function demonstratePhpRoundUp(): void 9{ 10 echo "--- round() 関数で正の無限大方向へ丸める (\\RoundingMode::Up) ---\n"; 11 12 // 正の数を切り上げる例 13 $num1 = 3.14; 14 // 小数点以下を切り上げ、整数にする (結果: 4) 15 $rounded1 = round($num1, 0, \RoundingMode::Up); 16 echo "round({$num1}, 0, \\RoundingMode::Up) => {$rounded1}\n"; 17 18 $num2 = 3.8; 19 // 小数点以下を切り上げ、整数にする (結果: 4) 20 $rounded2 = round($num2, 0, \RoundingMode::Up); 21 echo "round({$num2}, 0, \\RoundingMode::Up) => {$rounded2}\n"; 22 23 $num3 = 3.0; 24 // 既に整数なので、切り上げても値は変わらない (結果: 3) 25 $rounded3 = round($num3, 0, \RoundingMode::Up); 26 echo "round({$num3}, 0, \\RoundingMode::Up) => {$rounded3}\n"; 27 28 // 負の数を切り上げる例 29 // 負の数では、「正の無限大方向へ丸める」とは0に近づく方向(絶対値が小さくなる方向)を意味します。 30 $num4 = -3.14; 31 // 小数点以下を切り上げ、整数にする (結果: -3) 32 $rounded4 = round($num4, 0, \RoundingMode::Up); 33 echo "round({$num4}, 0, \\RoundingMode::Up) => {$rounded4}\n"; 34 35 $num5 = -3.8; 36 // 小数点以下を切り上げ、整数にする (結果: -3) 37 $rounded5 = round($num5, 0, \RoundingMode::Up); 38 echo "round({$num5}, 0, \\RoundingMode::Up) => {$rounded5}\n"; 39 40 // 小数点以下の特定の桁数で切り上げる例 41 $num6 = 3.14159; 42 // 小数点以下2桁目で切り上げる (結果: 3.15) 43 $rounded6 = round($num6, 2, \RoundingMode::Up); 44 echo "round({$num6}, 2, \\RoundingMode::Up) => {$rounded6}\n"; 45 46 $num7 = -3.14159; 47 // 小数点以下2桁目で切り上げる (結果: -3.14) 48 $rounded7 = round($num7, 2, \RoundingMode::Up); 49 echo "round({$num7}, 2, \\RoundingMode::Up) => {$rounded7}\n"; 50} 51 52// サンプルコードを実行します。 53demonstratePhpRoundUp(); 54
PHPのround関数は、指定された数値を丸めるために使用される標準関数です。特に「切り上げ」(正の無限大方向へ丸める)を行う場合、PHP 8以降では\RoundingMode::Upという丸めモードを利用します。このモードは、数値が正の場合は通常の切り上げ(例: 3.14が4に)、負の場合は0に近づく方向への切り上げ(例: -3.14が-3に)となります。
関数の最初の引数$numには丸めたい数値を指定します。続く$precision引数で丸める小数点以下の桁数を指定し、0を指定すると整数に丸められます。正の値を指定すると小数点以下の桁数が、負の値を指定すると整数部分の桁数が対象となります。そして、$mode引数に\RoundingMode::Upを指定することで、常に正の無限大方向へ丸める動作が適用されます。
例えば、3.14や3.8を整数に切り上げるとどちらも4になります。負の数-3.14や-3.8を整数に切り上げると、0に近づく方向である-3になります。また、3.14159を小数点以下2桁で切り上げると3.15に、-3.14159を小数点以下2桁で切り上げると-3.14となります。round関数の戻り値は常にfloat型で、丸められた数値が返されます。これにより、様々な要件に応じた数値の切り上げ処理を正確に実現できます。
PHPのround関数は、デフォルトでは一般的な四捨五入を行います。キーワード「php roundup」のように正の無限大方向へ切り上げたい場合は、第三引数に\RoundingMode::Upを必ず指定してください。この\RoundingMode enumはPHP 8以降で導入され、丸めモードをより明確に指定できます。また、負の数を\RoundingMode::Upで切り上げる場合、0に近づく方向に丸められるため、例えば-3.14は-3になります。これは直感と異なる場合があるため特に注意が必要です。round関数の戻り値は常にfloat型となります。
PHP round関数で数値を四捨五入する
1<?php 2 3/** 4 * PHPのround関数を使った基本的な四捨五入の例を示します。 5 * 6 * round関数は、デフォルトのRoundingMode::HalfUp(一般的な四捨五入)で動作します。 7 * 第二引数 $precision で小数点以下の桁数を指定できます。 8 */ 9function demonstrateRoundingExamples(): void 10{ 11 echo "--- 基本的な四捨五入 (小数点以下を丸めて整数に) ---" . PHP_EOL; 12 // 小数点以下が0.5未満は切り捨て 13 $num1 = 3.4; 14 echo "{$num1} を四捨五入すると: " . round($num1) . PHP_EOL; // 結果: 3 15 16 // 小数点以下が0.5以上は切り上げ 17 $num2 = 3.5; 18 echo "{$num2} を四捨五入すると: " . round($num2) . PHP_EOL; // 結果: 4 19 20 $num3 = 3.6; 21 echo "{$num3} を四捨五入すると: " . round($num3) . PHP_EOL; // 結果: 4 22 23 echo PHP_EOL; 24 25 echo "--- 指定した小数点以下の桁数で四捨五入 ---" . PHP_EOL; 26 // 小数点以下第2位で四捨五入 (第1位まで残す) 27 $num4 = 123.456; 28 echo "{$num4} を小数点以下第2位で四捨五入すると (第1位まで): " . round($num4, 1) . PHP_EOL; // 結果: 123.5 29 30 $num5 = 123.446; 31 echo "{$num5} を小数点以下第2位で四捨五入すると (第1位まで): " . round($num5, 1) . PHP_EOL; // 結果: 123.4 32 33 // 小数点以下第3位で四捨五入 (第2位まで残す) 34 $num6 = 7.892; 35 echo "{$num6} を小数点以下第3位で四捨五入すると (第2位まで): " . round($num6, 2) . PHP_EOL; // 結果: 7.89 36 37 $num7 = 7.896; 38 echo "{$num7} を小数点以下第3位で四捨五入すると (第2位まで): " . round($num7, 2) . PHP_EOL; // 結果: 7.90 39 40 echo PHP_EOL; 41 42 echo "--- 負のprecisionで整数部分を四捨五入 ---" . PHP_EOL; 43 // 1の位で四捨五入 (10の位まで残す) 44 $num8 = 1234.5; 45 echo "{$num8} を1の位で四捨五入すると (10の位まで): " . round($num8, -1) . PHP_EOL; // 結果: 1230 46 47 $num9 = 1235.5; 48 echo "{$num9} を1の位で四捨五入すると (10の位まで): " . round($num9, -1) . PHP_EOL; // 結果: 1240 49 50 // 10の位で四捨五入 (100の位まで残す) 51 $num10 = 5678.9; 52 echo "{$num10} を10の位で四捨五入すると (100の位まで): " . round($num10, -2) . PHP_EOL; // 結果: 5700 53} 54 55// 関数を実行して結果を表示します 56demonstrateRoundingExamples(); 57
PHPのround関数は、与えられた数値を指定された方法で四捨五入するために使用されます。この関数は、丸めたい数値である $num、小数点以下の桁数を指定する $precision、そして丸めモードを設定する $mode の三つの引数を取ります。デフォルトでは $precision が 0 に設定されており、数値を最も近い整数に丸めます。この際の丸めモードは、一般的な四捨五入である RoundingMode::HalfUp が適用され、例えば 3.4 は 3 に、3.5 や 3.6 は 4 に丸められます。
$precision に正の整数を指定することで、小数点以下の特定の桁数で四捨五入を行うことができます。例えば、round(123.456, 1) と指定すると、小数点以下第2位で四捨五入が行われ、結果は 123.5 となります。同様に、round(123.446, 1) であれば 123.4 となります。
また、$precision に負の整数を指定することも可能です。これにより、整数部分を特定の桁数で丸めることができます。例えば、round(1234.5, -1) は1の位で四捨五入を行い、結果は 1230 となります。round(1235.5, -1) の場合は 1240 となります。この関数は常に float 型の値を戻り値として返しますので、整数に丸められた場合でも浮動小数点数として扱われます。
PHPのround関数は、デフォルトで一般的な四捨五入(0.5は切り上げ)を行います。第二引数のprecisionで小数点以下の桁数を指定できますが、ここに負の値を指定すると、整数部分を丸めることができます。例えば、-1を指定すると1の位を四捨五入して10の位まで残し、-2だと10の位を四捨五入して100の位まで残します。関数は常にfloat型の値を返します。たとえ丸めた結果が整数値であってもfloat型で返されるため、戻り値の型を意識した処理を行うように注意してください。
PHP round 関数で小数点丸め処理
1<?php 2 3/** 4 * PHPのround関数を使った小数点の丸め処理のデモンストレーション 5 * 6 * この関数は、システムエンジニアを目指す初心者向けに、 7 * round関数の基本的な使い方、小数点以下の桁数指定、 8 * そしてPHP 8で導入された異なる丸めモードの指定方法を簡潔に示します。 9 */ 10function demonstrateRoundingExamples(): void 11{ 12 $num1 = 123.45678; // 基本的な数値 13 $num2 = 123.5; // 0.5の丸めケース(正の数) 14 $num3 = -123.45; // 負の数 15 $num4 = 123.45; // HalfEvenテスト用 16 $num5 = 123.55; // HalfEvenテスト用 17 18 echo "--- 元の数値 ---\n"; 19 echo "数値1: {$num1}\n"; 20 echo "数値2: {$num2}\n"; 21 echo "数値3: {$num3}\n"; 22 echo "数値4: {$num4}\n"; 23 echo "数値5: {$num5}\n\n"; 24 25 echo "--- 1. 基本的な丸め (小数点以下0桁) ---\n"; 26 // デフォルトでは小数点以下0桁に丸められ、RoundingMode::HalfUp (四捨五入) が適用されます。 27 echo "round({$num1}) : " . round($num1) . " (123.45678 -> 123)\n"; 28 echo "round({$num2}) : " . round($num2) . " (123.5 -> 124)\n"; 29 echo "round({$num3}) : " . round($num3) . " (-123.45 -> -123)\n\n"; 30 31 echo "--- 2. 小数点以下の桁数を指定して丸める ---\n"; 32 // 第二引数で小数点以下の桁数を指定します。 33 echo "round({$num1}, 2) : " . round($num1, 2) . " (123.45678 -> 123.46)\n"; 34 echo "round({$num1}, 3) : " . round($num1, 3) . " (123.45678 -> 123.457)\n"; 35 echo "round({$num3}, 1) : " . round($num3, 1) . " (-123.45 -> -123.5)\n\n"; 36 37 echo "--- 3. 負の桁数を指定して丸める (整数部分の丸め) ---\n"; 38 // 負の桁数を指定すると、小数点より上の位(整数部分)を丸めます。 39 // 例: -1 は1の位を丸めて10の位まで残します。 40 echo "round({$num1}, -1) : " . round($num1, -1) . " (123.45678 -> 120)\n"; 41 echo "round({$num1}, -2) : " . round($num1, -2) . " (123.45678 -> 100)\n\n"; 42 43 echo "--- 4. PHP 8 RoundingMode enum を使った丸めモードの指定 ---\n"; 44 // 第三引数で丸めモードを指定できます。PHP 8からはRoundingMode::* enumが推奨されます。 45 // 主なモード: HalfUp (標準の四捨五入), HalfDown (0.5を切り捨て), HalfEven (銀行型丸め), Up (0から遠ざかる), Down (0に近づく) 46 47 echo "元の数値: {$num4} (123.45) を小数点以下1桁で丸める:\n"; 48 echo " HalfUp (標準) : " . round($num4, 1, \RoundingMode::HalfUp) . " (0.05は切り上げ -> 123.5)\n"; 49 echo " HalfDown : " . round($num4, 1, \RoundingMode::HalfDown) . " (0.05は切り捨て -> 123.4)\n"; 50 echo " HalfEven : " . round($num4, 1, \RoundingMode::HalfEven) . " (最も近い偶数へ -> 123.4)\n\n"; 51 52 echo "元の数値: {$num5} (123.55) を小数点以下1桁で丸める:\n"; 53 echo " HalfUp (標準) : " . round($num5, 1, \RoundingMode::HalfUp) . " (0.05は切り上げ -> 123.6)\n"; 54 echo " HalfDown : " . round($num5, 1, \RoundingMode::HalfDown) . " (0.05は切り捨て -> 123.5)\n"; 55 echo " HalfEven : " . round($num5, 1, \RoundingMode::HalfEven) . " (最も近い偶数へ -> 123.6)\n\n"; 56 57 echo "元の数値: {$num3} (-123.45) を小数点以下1桁で丸める:\n"; 58 echo " HalfUp (標準) : " . round($num3, 1, \RoundingMode::HalfUp) . " (-123.5)\n"; 59 echo " HalfDown : " . round($num3, 1, \RoundingMode::HalfDown) . " (-123.4)\n"; 60 echo " Up (0から遠ざかる): " . round($num3, 1, \RoundingMode::Up) . " (-123.5)\n"; 61 echo " Down (0に近づく): " . round($num3, 1, \RoundingMode::Down) . " (-123.4)\n\n"; 62} 63 64// 関数を実行して結果を表示します 65demonstrateRoundingExamples(); 66 67?>
PHP 8のround関数は、指定された数値を任意の桁数で丸める際に使用されます。最初の引数$numには丸めたい数値(整数または浮動小数点数)を渡します。デフォルトでは小数点以下0桁に丸められ、例えば123.45は123.0、123.5は124.0となります。この関数の戻り値は常にfloat型です。
2番目の引数$precisionを使用すると、小数点以下の桁数を指定できます。例えば、round($num, 2)と指定すると小数点以下2桁に丸められます。この引数に負の値を指定することも可能で、その場合は小数点より上の位、つまり整数部分を丸めることができます。例えばround(123.45, -1)は1の位を丸めて120.0となり、10の位までを残します。
PHP 8からは、3番目の引数$modeでより詳細な丸めモードを指定できるようになりました。これにより、デフォルトの四捨五入(\RoundingMode::HalfUp)だけでなく、0.5を切り捨てる\RoundingMode::HalfDownや、最も近い偶数に丸める「銀行型丸め」である\RoundingMode::HalfEvenなど、様々な方式を選択できます。数値計算において、意図した丸め処理を行うために非常に役立つ関数です。
PHPのround関数は、数値を指定した小数点以下の桁数で丸める際に利用します。引数precisionを省略すると小数点以下0桁で四捨五入(HalfUp)されます。precisionに負の値を指定すると、整数部分を丸めることも可能です。PHP 8以降では、第三引数modeに\RoundingMode列挙型を使い、丸め方を細かく指定できます。特にHalfUp(一般的な四捨五入)と、HalfDown(0.5を切り捨て)、HalfEven(銀行型丸め)では、特定の数値(例:0.5)の丸め結果が異なるため注意が必要です。負の数に対する丸め処理もモードによって挙動が変わります。戻り値は常にfloat型となる点も覚えておきましょう。厳密な計算が求められる場合は、浮動小数点数の精度限界を考慮し、bcmath拡張機能の利用も検討してください。
PHP round()関数で小数点以下を丸める
1<?php 2 3/** 4 * PHPの round() 関数を使用して小数点以下を丸める方法を示すサンプルコードです。 5 * precision引数を使って、残したい小数点以下の桁数を指定できます。 6 */ 7 8// 丸めたい浮動小数点数を定義 9$originalValue1 = 123.4567; 10$originalValue2 = 789.9876; 11$originalValue3 = 5.5; // 0.5の丸めの挙動を確認するための値 12$originalValue4 = -10.5; // 負の値と0.5の丸めの挙動を確認するための値 13 14echo "--- 基本的な丸め (precision引数の使用) ---\n"; 15 16echo "元の値 1: {$originalValue1}\n"; 17echo "元の値 2: {$originalValue2}\n"; 18echo "元の値 3 (0.5): {$originalValue3}\n"; 19echo "元の値 4 (負の0.5): {$originalValue4}\n\n"; 20 21// precision を指定しない場合 (デフォルトは 0): 小数点以下を四捨五入して整数にする 22// PHPのデフォルトの丸めモードは RoundingMode::HalfUp (0.5は切り上げ) 23echo "小数点以下を丸めて整数に (デフォルト): " . round($originalValue1) . "\n"; // 123.4567 -> 123 24echo "小数点以下を丸めて整数に (デフォルト): " . round($originalValue2) . "\n"; // 789.9876 -> 790 25echo "小数点以下を丸めて整数に (デフォルト): " . round($originalValue3) . "\n"; // 5.5 -> 6 26echo "小数点以下を丸めて整数に (デフォルト): " . round($originalValue4) . "\n\n"; // -10.5 -> -10 (HalfUpモードの負の数) 27 28// precision = 1 を指定: 小数点第1位まで残し、第2位を四捨五入 29echo "小数点第1位まで残す (precision = 1): " . round($originalValue1, 1) . "\n"; // 123.4567 -> 123.5 30echo "小数点第1位まで残す (precision = 1): " . round($originalValue2, 1) . "\n\n"; // 789.9876 -> 790.0 31 32// precision = 2 を指定: 小数点第2位まで残し、第3位を四捨五入 33echo "小数点第2位まで残す (precision = 2): " . round($originalValue1, 2) . "\n"; // 123.4567 -> 123.46 34echo "小数点第2位まで残す (precision = 2): " . round($originalValue2, 2) . "\n\n"; // 789.9876 -> 789.99 35 36// precision = 3 を指定: 小数点第3位まで残し、第4位を四捨五入 37echo "小数点第3位まで残す (precision = 3): " . round($originalValue1, 3) . "\n"; // 123.4567 -> 123.457 38echo "小数点第3位まで残す (precision = 3): " . round($originalValue2, 3) . "\n\n"; // 789.9876 -> 789.988 39 40echo "--- 丸めモードの指定 (PHP 8.0以降) ---\n"; 41echo "元の値 (0.5): {$originalValue3}\n"; 42echo "元の値 (負の0.5): {$originalValue4}\n\n"; 43 44// RoundingMode::HalfUp (デフォルト): 0.5 は切り上げ、負の数の0.5は絶対値が小さくなる方へ丸める (-5.5 -> -5) 45echo "RoundingMode::HalfUp (5.5): " . round($originalValue3, 0, \RoundingMode::HalfUp) . "\n"; // 5.5 -> 6 46echo "RoundingMode::HalfUp (-10.5): " . round($originalValue4, 0, \RoundingMode::HalfUp) . "\n\n"; // -10.5 -> -10 47 48// RoundingMode::HalfDown: 0.5 は切り捨て、負の数の0.5は絶対値が大きくなる方へ丸める (-5.5 -> -6) 49echo "RoundingMode::HalfDown (5.5): " . round($originalValue3, 0, \RoundingMode::HalfDown) . "\n"; // 5.5 -> 5 50echo "RoundingMode::HalfDown (-10.5): " . round($originalValue4, 0, \RoundingMode::HalfDown) . "\n\n"; // -10.5 -> -11 51 52?>
PHPのround()関数は、浮動小数点数を指定した桁数に丸めるために使用されます。この関数は、主に数値の表示形式を整えたり、特定の精度での計算が必要な場合に活用されます。
第一引数$numには、丸めたい浮動小数点数を指定します。第二引数$precisionには、小数点以下の残したい桁数を整数で指定します。例えば、$precisionを省略するか0に設定すると、数値は小数点以下が丸められ、最も近い整数が返されます。round(123.4567, 1)のように1を指定すると、小数点第一位まで残し、第二位を四捨五入して123.5が返されます。
PHP 8以降では、第三引数$modeで丸めの具体的な方法を指定できます。デフォルトの\RoundingMode::HalfUpは、丸める桁の数値が0.5の場合に切り上げ(例: 5.5は6、-10.5は-10)を行います。一方、\RoundingMode::HalfDownを指定すると、0.5の場合に切り捨て(例: 5.5は5、-10.5は-11)を行います。round()関数は、常にfloat型の値を返します。
round()関数は、数値を指定した小数点以下の桁数で丸めます。第二引数で残したい小数点以下の桁数を指定し、省略すると整数に丸められます。第三引数の丸めモードはPHP 8.0以降で利用でき、特に0.5の数値の扱いに影響します。デフォルトのHalfUpモードは0.5を切り上げますが、負の数の場合は絶対値が小さくなる方向に丸めます。期待する丸め結果と異なる場合は、丸めモードの指定を確認することが重要です。この関数は常に浮動小数点数を返すため、厳密な整数値が必要な場合は別途型変換を検討してください。