PHP

round(四捨五入)、celi(切り上げ)、切り捨て(floor)をマスターしよう!

四捨五入

今回解説する内容!

✔️小数点の四捨五入の方法は?

✔️小数点の切り上げ、切り捨ての関数

今回は小数点の四捨五入、切り上げ、切り捨て の関数について学びます!

関数の基礎に関しては下記の記事を参考にして下さい!

>>【PHPの基礎】関数をマスターしよう!

独学がつらくなった方は下記をご覧ください!

>>【初心者必見!】無料体験ができるプログラミングスクールをご紹介!

【基礎編】四捨五入について(round関数)

round関数では小数点の数字を四捨五入して表示することができます

出力されるのは整数の数字になります。

第一引数のみの場合

実際の使い方は下記の通りです。

<?php

echo round(2.1);
echo '<br>';
echo round(8.8);

?>

結果は下記の通りです。

それぞれの小数点の数字が四捨五入されたのが分かるかと思います。

またround関数では、2つ目の引数に、小数点何桁まで表示するか(何桁より下の桁で四捨五入する)を指定することができます

第二引数を指定する場合

<?php

echo round(3.121,1);
echo '<br>';
echo round(2.412,2);

?>

結果は下記の通りです。

それぞれ、指定された桁数の下の桁で四捨五入させているのが分かるかと思います。

更に2つ目の引数に負の値をとることで、整数の何桁以上で四捨五入するかを指定することもできます

第二引数が負の値の場合

<?php

echo round(12345,-1);
echo '<br>';
echo round(12345,-2);
echo '<br>';
echo round(12345,-3);

?>

結果は下記の通りです。

それぞれ指定した桁以上で四捨五入されいることがわかります。

【基礎編】切り上げについて(ceil関数)

小数点を切り上げたい場合はceil関数を使用します

使い方は下記の通りです。

<?php

echo ceil(2.3);
echo '<br>';
echo ceil(4.5);

?>

結果は下記の通りです。

指定された小数点の数字が切り上げられたのがわかります。

ceil関数には第二引数が指定できません!

桁数を指定して切り上げを行う場合

ceil関数は第二引数が指定できないため、桁数を指定して切り上げを行う場合は下記のように記述して調整します。

<?php

//小数第二位で切り上げ
$test1=ceil(3.14159 * 10 ) / 10;

//小数第三位で切り上げ
$test2=ceil(3.14159 * 100) / 100;

echo $test1;
echo '<br>';
echo $test2;

?>

結果は下記の通りです!

上記の通り桁数を指定した場合は、あらかじめ小数点を変更し、ceil関数で切り上げした後、小数点を基の位置に戻す処理を行います!

【基礎編】切り捨てについて(floor関数)

小数点を切り捨てる場合はfloor関数を使用します。

<?php

echo floor(2.3);
echo '<br>';
echo floor(4.5);

?>

結果は下記の通りです。

指定された小数点の数字が切り捨てられたのがわかります。

【実践編】小数点以下の処理後の型に注意!

先ほど学んだ関数に関して、処理後の型に関しては注意が必要です!

下記のコードで確認してみましょう。

<?php
$a=1.2;

$b=round($a);

if($b===1){
    echo'$aを四捨五入したら1になります';
}else{
    echo'$aを四捨五入しても1になりません';
}

?>

結果は下記の通りです。

$a(1.2)を四捨五入すると「1」になる為、if文で「1かどうか」の条件分岐をするとtrue($aを四捨五入したら1になります)になると思いきや、false($aを四捨五入しても1になりません)が結果として出てきました。

これは、型の違いによるものです。

試しに四捨五入後の$bの型を確認するために、var_dumpしてみると下記の結果が得られます。

型はint型ではなく、float型であるのがわかります。

その為、先ほどの条件分岐でtrueを得るためには、四捨五入した値をint型にキャストするか、「==」を使って比較する必要があります

if文や型、キャストに関しては下記の記事を参考にして下さい!

>>【PHPの基礎】if文をマスターしよう!

>>【PHPの基礎】変数、型の種類をマスターしよう!

>>【PHPの基礎】intval関数をマスターしよう!

型による違いの為に、正確な値を得られない場合は実際の開発でもよくあることなので、是非今回でマスターしましょう!

独学でツラくなった方へ

まとめ

今回解説した内容

✅小数点の四捨五入の方法

✅小数点の切り上げ、切り下げの方法

✅小数点以下の処理後の型の注意点

今回は以上です。

開発の際に、これらの関数を使用することは多多くあります。

今回でこの3セットをマスターしましょう!