【PHP関数】小数点を切り上げ・切り捨て・四捨五入する方法
PHPを使用してシステムやアプリケーションを作成している際、取得したり生成した数値の小数点以下を切り上げたり、切り捨てたり、四捨五入したりしてシステムやアプリケーションを構築したいという場面は多々出くわすと思います。
今回の記事では、PHPで小数点以下を切り上げ・切り捨て・四捨五入する方法をサンプルコードと合わせてご紹介していきたいと思います。
この記事の目次を表示
小数点を切り上げ【ceil関数】
ceil関数を使ってみる
PHPで小数点を切り上げる場合、ceil関数を使用することで実現出来ます。
早速、実際にceil関数を使用して数値がどうなるのか見てみましょう。
<?php
$number = 1.234567;
echo ceil($number);
?>
実行結果
2
このように小数点以下を切り上げることが出来ます。
小数点の位を指定して切り上げ
ceil関数を使うことで小数点以下を切り上げることが出来ましたが、ceil関数では切り上げる小数点の位を指定することが出来ます。こちらも早速、実際のプログラムと結果を見てみましょう。
<?php
$number = 1.234567;
// 小数第2位で切り上げ
echo ceil($number * 10) / 10;
// 小数第3位で切り上げ
echo ceil($number * 100) / 100;
// 小数第4位で切り上げ
echo ceil($number * 1000) / 1000;
?>
実行結果
1.3
1.24
1.235
このように小数点の位を指定して切り上げることが出来ます。
整数の位を指定して切り上げ
ceil関数は整数の位を指定して切り上げることも出来ます。続いてはそのやり方を実際のプログラムをもとに見てみましょう。
<?php
$number = 1234567;
// 1の位で切り上げ
echo ceil($number / 10) * 10;
// 10位で切り上げ
echo ceil($number / 100) * 100;
// 100で切り上げ
echo ceil($number / 1000) * 1000;
?>
実行結果
1234570
1234600
1235000
このようにすることで小数点の位同様、整数の位を指定して切り上げることが出来ます。
小数点を切り捨て【floor関数】
floor関数を使ってみる
続いて、PHPで小数点を切り捨てる場合はfloor関数を使用することで実現出来ます。
こちらも先ほど同様、実際にfloor関数を使用して数値がどうなるのか見てみましょう。
<?php
$number = 1.234567;
echo floor($number);
?>
実行結果
1
このように小数点以下を切り捨てることが出来ます。
小数点の位を指定して切り捨て
floor関数を使うことで小数点以下を切り捨てることが出来ましたが、floor関数の場合も切り捨てる小数点の位を指定することが出来ます。こちらも早速、実際のプログラムと結果を見てみましょう。
<?php
$number = 1.234567;
// 小数第2位で切り捨て
echo floor($number * 10) / 10;
// 小数第3位で切り捨て
echo floor($number * 100) / 100;
// 小数第4位で切り捨て
echo floor($number * 1000) / 1000;
?>
実行結果
1.2
1.23
1.234
このように小数点の位を指定して切り捨てることが出来ます。
整数の位を指定して切り捨て
floor関数も先ほどの関数同様、整数の位を指定して切り上げることも出来ます。続いてはそのやり方を実際のプログラムをもとに見てみましょう。
<?php
$number = 1234567;
// 1の位で切り捨て
echo floor($number / 10) * 10;
// 10位で切り捨て
echo floor($number / 100) * 100;
// 100で切り捨て
echo floor($number / 1000) * 1000;
?>
実行結果
1234560
1234500
1234000
このように小数点の位同様、整数の位を指定して切り捨てることが出来ます。
小数点を四捨五入【round関数】
round関数を使ってみる
それでは最後にPHPで小数点を四捨五入する方法をご紹介します。四捨五入する場合はround関数を使用します。
こちらもその他同様、実際にround関数を使用して数値がどうなるのか見てみましょう。
<?php
$number1 = 1.234567;
$number2 = 9.876543;
echo round($number1);
echo round($number2);
?>
実行結果
1
10
このように小数点以下を四捨五入することが出来ます。
小数点の位を指定して四捨五入
round関数の場合は先ほどまでのceil関数やfloor関数とは異なり、第2引数に小数点の位を代入することで指定した小数点の位にて四捨五入することが出来ます。
こちらも早速、実際のプログラムと結果を見てみましょう。
<?php
$number1 = 1.234567;
$number2 = 9.876543;
// 小数第2位で四捨五入
echo round($number1,1);
echo round($number2,1);
// 小数第3位で四捨五入
echo round($number1,2);
echo round($number2,2);
// 小数第4位で四捨五入
echo round($number1,3);
echo round($number2,3);
?>
このように小数点の位を指定して四捨五入することが出来ます。
実行結果
1.2
9.9
1.23
9.88
1.235
9.877
整数部分を四捨五入
round関数の場合は、第2引数にマイナスの引数を代入することで、小数点同様、整数の位で四捨五入することが出来ます。
<?php
$number1 = 1234567;
$number2 = 9876543;
// 1の位で四捨五入
echo round($number1,-1);
echo round($number2,-1);
// 10の位で四捨五入
echo round($number1,-2);
echo round($number2,-2);
// 100の位で四捨五入
echo round($number1,-3);
echo round($number2,-3);
?>
実行結果
1234570
9876540
1234600
9876500
1235000
9877000
このように小数点の位同様、整数の位を指定して四捨五入することが出来ます。
まとめ
PHPで小数点以下を切り上げ・切り捨て四捨五入する方法をご紹介しました。切り上げる場合は【ceil関数】、切り捨てる場合は【floor関数】、四捨五入する場合は【round関数】を使用して、数値を調整します。
それぞれ使い方は簡単ですが、適切な関数を使用しないと自分が想定している値が生成されないということが起こってしまい、バグ発生の原因となってしまいます。
数値を調整する際は適切な関数を選択するようにしましょう。