浮動小数点を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」のように値が中央になりうる場面において、どっちに丸め込むかを指定することが出来るということである。