【PHP】round()で少数を丸める際、指定できるオプションまとめ。

浮動小数点をround()で丸めた時、通常は四捨五入された値が返されるが、第3引数に動作モードを指定してやることで、丸め方を指定することが出来る。

ちなみに第2引数は丸め込みたい桁数を指定する。

echo round(5.4); // 5
echo round(5.5); // 5
echo round(1.234567, 3); // 1.235
echo round(1234567, -3); // 1235000
echo round(5.5, 0, PHP_ROUND_HALF_UP); // 6
echo round(5.5, 0, PHP_ROUND_HALF_DOWN); // 5
echo round(5.5, 0, PHP_ROUND_HALF_EVEN); // 6
echo round(5.5, 0, PHP_ROUND_HALF_ODD); // 5
echo round(5.555, 2, PHP_ROUND_HALF_EVEN); // 5.56
echo round(5.555, 2, PHP_ROUND_HALF_ODD); // 5.55

モードの詳細は以下の通り。

定数 詳細
PHP_ROUND_HALF_UP 端数を切り上げ
PHP_ROUND_HALF_DOWN 端数を切り捨て
PHP_ROUND_HALF_EVEN 端数を偶数に丸め込む
PHP_ROUND_HALF_ODD 端数を奇数に丸め込む

「PHP_ROUND_HALF_EVEN」、「PHP_ROUND_HALF_ODD」に関しては多少理解しづらいかもしれないが、
値がど真ん中であれば偶数/奇数に丸め、それ以外は近い方に丸めるという処理が行われる。
よって5.4の場合、出力はいずれのモードであっても5になり、5.6であれば6ということになる。
5、5.5、12.55、など「.5」のように値が中央になりうる場面において、どっちに丸め込むかを指定することが出来るということである。