PR

【PHP】「割り算→小数点まで計算、余り計算→整数で終わり」だよって話

アイキャッチ画像

プログラミングで四則演算は容易にできますが、本記事は割り算と余り計算のちょっとした注意点についてです。

タイトルにもあるように、

割り算小数点まで計算(割り切れるまで計算)
余り計算整数の範囲で計算(割り切れなくても計算終わり)
割り算と余り計算 まとめ

上記のとおりです。

初歩的な内容かもしれないですが、つまづきやすいポイントなので解説します。

割り算と余り計算を比較してみる

PHPで【10 ÷ 4】という計算をしてみます。

割り算

10 / 4 // 2.5

割り算は小数点まで計算して、割り切れるまで計算をします。
【10 ÷ 4】を小数点まで計算するので、商は2.5という答えが得られます。

注意点

裏を返せば整数の範囲では計算が終わらないので、【10 ÷ 4】の商は2ではありません。

余り計算

10 % 4 // 2

余り計算は整数の範囲で計算して、割り切れなくても計算が終わります。
【10 ÷ 4】は整数の範囲では、商は2で余りが2という答えが得られます。

注意点

裏を返せば小数点まで計算しないので、【10 ÷ 4】が割り切れて余りが0にはなりません。

【補足】割り算の商から小数点以下を排除するには

割り算をして商は欲しいけど、小数点以下は要らない。
どうしたら良い?

上記ケースがたまにあります。

割り算の商から小数点以下を排除する方法は3つあります。

① 商を切り上げる

ceil(10 / 4) // 3

② 商を切り捨てる

floor(10 / 4) // 2

③ 商を四捨五入する

round(10 / 4) // 3

【10 ÷ 4】を整数の範囲で計算したように出力したい場合は、②のfloor()関数を使えば良いですね!

経験談

ある機能を実装しようとしていて、上手く書けているはずなのにどうしてもエラーが起きることがありました。

どこが間違えていたかと言うと、割り算の商は整数の範囲の答えだと勘違いしていたことでした。

そんなはず無いのに…。

初歩的な内容だからって確認を怠ると、足元をすくわれますね。