B-Teck!

お仕事からゲームまで幅広く

【PHP】小数点以下の丸め/四捨五入

PHPで小数点以下の数値を扱ったり、数値を四捨五入する場合の関数。
 

・round(val [,precision, mode])

・floor(val)

・ceil(val)


val : 丸める値
(以下はroundのみ)
precision: 丸める桁数(正の値の場合は小数点以下の桁数。)
mode : 丸める際のモードを指定

定数 説明
PHP_ROUND_HALF_UP 小数点以下の桁がprecisionで指定した値になるように、次の帰趨にまとめる
PHP_ROUND_HALF_DOWN 小数点以下の桁がprecisionで指定した値になるように、次の帰趨にまとめる
PHP_ROUND_HALF_EVEN 小数点以下の桁がprecisionで指定した値になるように、次の偶数に丸める
PHP_ROUND_HALF_ODD 小数点以下の桁がprecisionで指定した値になるように、次の奇数に丸める

PHP_ROUND_HALF_EVEN、PHP_ROUND_HALF_ODDについての補足

対象の桁が5より小さければ切り捨て、5より大きければ切り上げを行い、
・ちょうどまんなかの5であればEVENの場合は偶数に近いほうに
・ちょうどまんなかの5であればODDの場合は奇数に近いほうに
丸め処理を行う。


<?php
print_r(round( 12345.6789)."\n");       // 1の位を四捨五入
print_r(round( 12345.6789,-1)."\n");    // 10の位を四捨五入
print_r(round( 12345.6789,-4)."\n");    // 10000の位を四捨五入
print_r(round( 12345.6789,1)."\n");     // 小数点第一位を四捨五入
print_r(round( 12345.6789,3)."\n");     // 小数点第三位を四捨五入
print_r(round( 1.55, 1,PHP_ROUND_HALF_UP)."\n");    // 小数点第一位をゼロから離れる方向に丸める
print_r(round( 1.55, 1,PHP_ROUND_HALF_DOWN)."\n");  // 小数点第一位をゼロに近づく方向に丸める
print_r(round( 1.55, 1,PHP_ROUND_HALF_EVEN)."\n");  // 小数点第一位を偶数に近づく方向に丸める
print_r(round( 1.55, 1,PHP_ROUND_HALF_ODD)."\n");   // 小数点第一位を奇数に近づく方向に丸める
print_r(ceil( 12345.6789)."\n");        // 小数点以下を切りあげ
print_r(floor(12345.6789)."\n");        // 小数点以下を切り捨て

//実行結果
//12346
//12350
//10000
//12345.7
//12345.679
//1.6
//1.5
//1.6
//1.5
//12346
//12345
?>