[ PHP ] 四捨五入 五捨六入 最近接偶(奇)数丸め ( round 関数 )

Pocket

PHP では、 round 関数を使用して四捨五入を行うことができます。また、round 関数は四捨五入以外にも五捨六入や、最近接偶(奇)数丸めも行うことができます。ここでは、round 関数の使用サンプルを掲載しています。

スポンサーリンク

round 関数の使用サンプル

以下のサンプルは、PHP5.3 で追加された mode パラメータを使用しているため、それ以前のバージョンでは使用することができません。詳細はサンプル内のコメントを参照ください。

// 小数点第一位を四捨五入して整数出力
echo round(1.49, 0, PHP_ROUND_HALF_UP);   // 1
echo round(1.50, 0, PHP_ROUND_HALF_UP);   // 2
echo round(1.51, 0, PHP_ROUND_HALF_UP);   // 2

// 小数点第一位を五捨六入して整数で出力
echo round(1.49, 0, PHP_ROUND_HALF_DOWN); // 1
echo round(1.50, 0, PHP_ROUND_HALF_DOWN); // 1
echo round(1.51, 0, PHP_ROUND_HALF_DOWN); // 2

// 小数点第一位で最近接偶数への丸めを行う
echo round(8.5, 0, PHP_ROUND_HALF_EVEN); // 8
echo round(9.5, 0, PHP_ROUND_HALF_EVEN); // 10

// 小数点第一位で最近接奇数への丸めを行う
echo round(8.5, 0, PHP_ROUND_HALF_ODD);  // 9
echo round(9.5, 0, PHP_ROUND_HALF_ODD);  // 9

// 小数点第二位を四捨五入して整数出力
echo round(1.44, 1, PHP_ROUND_HALF_UP);   // 1.4
echo round(1.55, 1, PHP_ROUND_HALF_UP);   // 1.6
echo round(1.56, 1, PHP_ROUND_HALF_UP);   // 1.6

// 小数点第二位を五捨六入して整数で出力
echo round(1.44, 1, PHP_ROUND_HALF_DOWN); // 1.4
echo round(1.55, 1, PHP_ROUND_HALF_DOWN); // 1.5
echo round(1.56, 1, PHP_ROUND_HALF_DOWN); // 1.6

// 小数点第二位で最近接偶数への丸めを行う
echo round(8.45, 1, PHP_ROUND_HALF_EVEN); // 8.4
echo round(9.55, 1, PHP_ROUND_HALF_EVEN); // 9.6

// 小数点第一位で最近接奇数への丸めを行う
echo round(8.45, 1, PHP_ROUND_HALF_ODD);  // 8.5
echo round(9.55, 1, PHP_ROUND_HALF_ODD);  // 9.5

round 関数の第2パラメータにマイナス値を指定することで、一の位(-1)や十の位(-2)で四捨五入を行うこともできます。

最近接偶数への丸め

端数が0.5より小さいなら切り捨て、端数が0.5より大きいならは切り上げ、端数がちょうど0.5なら切り捨てと切り上げのうち結果が偶数となる方へ丸める。また、端数がちょうど 0.5の場合に丸める数(偶数または奇数)がランダムになる数であれば 計算誤差が最終的に少なくなるが、一方(偶数または奇数)に偏ってしまう場合などは逆に計算を繰り返すほど 誤差が大きくなってしまう。

最近接奇数への丸め

最近接偶数への丸めと同様だが、端数がちょうど0.5なら切り捨てと切り上げのうち結果が 奇数となる方へ丸める点が異なる。

参考
スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *