作成日:2017-11-29, 更新日:2017-11-29
四捨五入:round()
$num = 1234563.14945689; echo round($num); // 小数第一位を四捨五入→整数になる echo round($num, 1); // 小数第二位を四捨五入→小数第一位まで表示 echo round($num, 2); // 小数第三位を四捨五入 echo round($num, -1); // 1の位を四捨五入 echo round($num, -2); // 10の位を四捨五入
切り捨て:floor()
小数を切り捨て整数にする
$num = 1234563.14945689; echo floor($num); // 小数を切り捨て→整数になる
小数指定
表示したいとこまで整数にしてから切り捨て。その後、小数に戻す
$num = 1234563.14945689; $n = 3 ; // 表示したい小数第n位 echo floor( $num * pow(10, $n) ) / pow(10, $n);
切り上げ:ceil()
小数を切り上げ整数にする
$num = 1234563.14945689; echo ceil($num); // 小数を切り上げ→整数になる
小数指定
表示したいとこまで整数にしてから切り上げ。その後、小数に戻す
$num = 1234563.14945689; $n = 3 ; // 表示したい小数第n位 echo ceil( $num * pow(10, $n) ) / pow(10, $n);
まとめ
端数処理をまとめておきたい。
function procRounding($num, $target=0, $proc='round') { $n = pow(10, $target); switch ( $proc ) { case 'round': // 四捨五入 $fixNum = round($num, $target); break; case 'floor': // 切り捨て $fixNum = floor( $num * $n ) / $n; break; case 'ceil': // 切り上げ $fixNum = ceil( $num * $n ) / $n; break; default: $fixNum = $num; break; } return $fixNum; } echo procRounding(123456.789, -1, 'ceil');
「$target」の値と結果
・-2:10の位を四捨五入
・-1: 1の位を四捨五入
・ 0:小数第一位を四捨五入→整数になる
・ 1:小数第二位を四捨五入→小数第一位まで表示
・ 2:小数第三位を四捨五入→小数第二位まで表示