フリーランス|WEB 制作経験丸7年、制作会社様からのご依頼に丁寧・高クオリティでお手伝いいたします。 IRODORI DESIGN

B L O G

【PHP関数】小数点を切り上げ・切り捨て・四捨五入する方法

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関数】を使用して、数値を調整します。
それぞれ使い方は簡単ですが、適切な関数を使用しないと自分が想定している値が生成されないということが起こってしまい、バグ発生の原因となってしまいます。
数値を調整する際は適切な関数を選択するようにしましょう。