PHP開発では、浮動小数点数を処理するときに値を上下に丸める必要があることがよくあります。 PHPは、2つの非常に実用的な数学的関数を提供します: ceil()とfloor() 。それらの機能は似ているようですが、実際には本質的な違いがあります。この記事では、これら2つの関数の違いを詳細に分析し、上向きの丸めが必要なシナリオで使用するためにより適している関数を調べます。
CEIL()関数の関数は、上向きに丸めることです。分数部分に関係なく、小数がある限り、それはそれ以上の数を最小の整数に上げます。
<?php
echo ceil(4.3); // 出力 5
echo ceil(9.999); // 出力 10
echo ceil(-3.1); // 出力 -3
?>
上記のように、 CEIL(4.3)は5を返します。つまり、 4.3より大きい最小の整数が4.3よりも大きいですが、-3は-3が-3.1を超える最小の整数であるため-3を返します。
CEIL()とは対照的に、 Floor()関数は丸めて使用されます。常に元の数値以下の最大整数を返します。
<?php
echo floor(4.7); // 出力 4
echo floor(9.999); // 出力 9
echo floor(-3.1); // 出力 -4
?>
負の数値を処理する場合、 floor()の動作は「よりネガティブ」であり、たとえばフロア(-3.1)は-3ではなく-4を出力することに注意してください。
概要は次のとおりです。
関数 | 丸め/下 | ポジティブなパフォーマンス | ネガティブパフォーマンス |
---|---|---|---|
ceil() | 上に丸くします | 上方(大きい) | 上向き(否定的です) |
床() | 丸めます | ダウン(小さい) | 下向き(負の数が大きい) |
この違いは、負の数に対処する必要がある場合に特に重要です。たとえば、ユーザーポイントシステムでは、ポイントを「もっと」控除したい場合は、選択する機能に特別な注意を払う必要がある場合があります。
まとめる必要がある場合は、 ceil()関数を使用する必要があることは間違いありません。 CEIL()の元の意図は、小数がある場合、常に元の数よりも大きい最小の整数を常に返すことです。
たとえば、APIリクエストがある場合、 https ://m66.net/api/get_list.php?total=53&per_page=10には、ページの総数を計算する必要があります。
<?php
$total = 53;
$perPage = 10;
$pages = ceil($total / $perPage);
echo $pages; // 出力 6
?>
フロア()を誤用すると、結果は5ページになり、ユーザーは最後の3つのデータを表示できません。
CEIL() :まとめ、元の値を「少なくとも」上書きしたいシナリオに適しています。
Floor() :元の値を超えないだけのアプリケーションに適しています。
したがって、上向きの丸めが必要なシナリオでは、 CEIL()関数がより適切な選択です。これらの2つの機能のニュアンスを理解することは、浮遊点数を処理する際に開発者がより正確で効率的になるのに役立ちます。