PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのround()関数の使い方!浮動小数点数の四捨五入と丸めモードを徹底解説

PHPのround()関数とは

round()関数は、浮動小数点数を指定した精度レベルに丸める(四捨五入する)ために使用される関数です。精度パラメータに正の値を指定すると小数点以下が丸められ、負の値を指定すると小数点より前の整数部分が丸められます。精度を省略した場合のデフォルト値は0です。

例えば、round(10.6)は11を返し、round(10.2)は10を返します。この関数は常にfloat型の値を返すという特徴があります。

また、round()関数にはオプションの第3引数として「mode」パラメータがあり、後述する定義済み定数のいずれかを指定することで、丸め方を細かく制御できます。

構文

round ( float $value , int $precision , int $mode ) : float

パラメータ

No.パラメータと説明
1value
丸め対象となる浮動小数点数を指定します。
2precision
丸めを行う小数点以下の桁数を指定します。デフォルトは0です。正の値を指定すると小数点以下が丸められ、負の値を指定すると小数点より前(整数部分)が丸められます。
3mode
丸めの挙動を指定する定義済み定数です。
PHP_ROUND_HALF_UPちょうど半分の値の場合、0から遠ざかる方向に丸めます。例:1.5 → 2、-1.5 → -2
PHP_ROUND_HALF_DOWNちょうど半分の値の場合、0に近づく方向に丸めます。例:1.5 → 1、-1.5 → -1
PHP_ROUND_HALF_EVEN最も近い偶数の値に丸めます。
PHP_ROUND_HALF_ODD最も近い奇数の値に丸めます。

戻り値

PHPのround()関数は、指定された精度で値を丸めた結果をfloat型で返します。

対応するPHPバージョン

この関数はPHP 4.x、PHP 5.x、PHP 7.x以降のすべてのバージョンで利用可能です。

使用例:正の精度で丸める場合

次の例では、正の精度値を指定して数値を丸めています。

<?php
   $arg=1234.567;
   echo "round(" . $arg . ") = " . round($arg) . "\n";
   echo "round(" . $arg . ",1) = " . round($arg,1) . "\n";
   echo "round(" . $arg . ",2) = " . round($arg,2) . "\n";
?>

出力結果:

round(1234.567) = 1235
round(1234.567,1) = 1234.6
round(1234.567,2) = 1234.57

使用例:負の精度で丸める場合

次の例では、負の精度値を指定して整数部分を丸めています。

<?php
   $arg=1234.567;
   echo "round(" . $arg . ") = " . round($arg) . "\n";
   echo "round(" . $arg . ",-1) = " . round($arg,-1) . "\n";
   echo "round(" . $arg . ",-2) = " . round($arg,-2) . "\n";
?>

出力結果:

round(1234.567) = 1235
round(1234.567,-1) = 1230
round(1234.567,-2) = 1200

使用例:HALF_UP / HALF_DOWNモードでの丸め

次の例では、PHP_ROUND_HALF_UPおよびPHP_ROUND_HALF_DOWNの各モードを使用しています。

<?php
echo "round( 3.45,HALF_UP) = " . round(3.45,0, PHP_ROUND_HALF_UP) . "\n";
echo "round(3.75 HALF_UP) = " . round(3.75, 1, PHP_ROUND_HALF_DOWN) . "\n";
?>

出力結果:

round( 3.45,HALF_UP) = 3
round(3.75 HALF_UP) = 3.7

使用例:HALF_ODD / HALF_EVENモードでの丸め

次の例では、PHP_ROUND_HALF_ODDおよびPHP_ROUND_HALF_EVENの各モードを使用しています。

<?php
   echo "round( 3.45,HALF_ODD) = " . round(3.45,0, PHP_ROUND_HALF_ODD) . "\n";
   echo "round(3.78 HALF_EVEN) = " . round(3.78, 0, PHP_ROUND_HALF_EVEN) . "\n";
?>

出力結果:

round( 3.45,HALF_ODD) = 3
round(3.78, HALF_EVEN) = 4
  1. PHPのlcg_value()関数とは?乱数生成の基本と使い方を解説

    lcg_value()関数の定義と使い方lcg_value()関数は、0から1までの範囲でランダムな数値(浮動小数点数)を生成するPHP組み込み関数です。「LCG」とは「線形合同法(Linear Congruential Generator)」の略称です。この手法は、不連続な区分線形方程式を用いて擬似乱数列を計算するアルゴリズムで、擬似乱数生成アルゴリズムの中でも最も古くから知られているものの一つです。構文lcg_value ( void ) : floatパラメータこの関数は引数を受け取りません。戻り値lcg_value()関数は、0.0以上1.0以下の範囲にある擬似乱数のfloat値を返し

  2. 【PHP入門】round()関数の使い方 – 数値を四捨五入する方法と丸めモードの解説

    PHPのround()関数は、浮動小数点数(float型)の数値を指定した桁数で四捨五入するための関数です。例えば、0.90 を 1 に、0.35 を 0 のように丸めることができます。金額計算や表示用の数値整形など、さまざまな場面で活用される基本的な関数の一つです。 round()関数の基本構文 round(val, precision, mode) 引数はすべて省略可能な形で、precision と mode を指定しない場合は、小数第一位で四捨五入されます。 パラメータの詳細 val ― 四捨五入の対象となる数値を指定します。 precision ― 小数点以下の何桁まで丸めるかを