round

round関数:数値を四捨五入する

使い方

$rounded = round( $value, $precision );

なんでこんな基礎的な関数を紹介するの?と言われそうですが、あえてご紹介します。
PHPで数値(正確には浮動小数点数)を四捨五入するには、round関数を使うのが一番いい方法です。

第1引数に四捨五入したい数値、第2引数に丸める桁数を指定するとその桁数で四捨五入してくれます。
第2引数の丸める桁数には、0といれれば小数点以下0桁(つまり、整数部分のみに丸める)、2といれれば小数点以下2桁までの数値に丸めることができます。さらに、負の整数を第2引数に指定することもできます。詳しくは次の表をご覧ください。

第1引数 第2引数 戻り値
1234.5678 0 1235
1234.5678 2 1234.57
1234.5678 -2 1200

ちなみに第2引数を省略すると第2に引数に0(ゼロ)が指定された時と同じ四捨五入になります。

そして、もう1つこの関数の特徴として、第3引数を指定することができるのです。
第3引数には丸めモードと言って数値の丸め方を指定する定数を指定します。
特に負の数を丸める場合などでは、このモードを指定しないと自分の意図した丸め方と異なる場合があるので注意が必要です。

第3引数の指定の例

$rounded = round( $val, $precision, PHP_ROUND_HALF_UP );

この第3引数には下記の定数を指定することができます。

定数 丸め方
PHP_ROUND_HALF_UP いつもの四捨五入です。第3引数を省略するとこの丸め方になります。
PHP_ROUND_HALF_DOWN 五捨六入になります。負の数の場合にはゼロに近い方に丸められます。
PHP_ROUND_HALF_EVEN 四捨五入と思いきや、切り捨てる値が5の場合、一番近い偶数になるように丸められます。
PHP_ROUND_HALF_ODD 四捨五入と思いきや、切り捨てる値が5の場合、一番近い奇数になるように丸められます。

特にPHP_ROUND_HALF_EVENとPHP_ROUND_HALF_ODDの違いが難しいのですが。
こんな感じです。

round(115, -1)の第3引数での戻り値の違い
丸める数値 PHP_ROUND_HALF_EVEN PHP_ROUND_HALF_ODD
114 110 110
115 120 110
116 120 120
117~123は省略
124 120 120
125 120 130
126 130 130

使いどころ

四捨五入とか、概算の数値を表示するときに役に立ちそうです。
たとえば、そのページを「いいね」していると124303人いるとして、約120000人と表示したいときなどにはround関数を使えば一発です。

公式サイト

http://www.php.net/manual/ja/function.round.php