ホームページ >バックエンド開発 >PHPチュートリアル >PHPで最も近い5の倍数に切り上げるにはどうすればよいですか?
PHP で数値を扱う場合、多くの場合、最も近い特定の値に四捨五入する必要があります。一般的なシナリオの 1 つは、最も近い 5 の倍数に切り上げることです。
入力として整数を受け取り、その最も近い 5 の倍数を返す PHP 関数が求められます。たとえば、52 を指定して呼び出すと、55 が返されるはずです。
組み込みのround()関数は、デフォルトではこの機能を提供しません。負の精度で使用すると、最も近い 10 の累乗に丸められます。
目的の丸め動作を実現するには、カスタム関数を作成できます:
<code class="php">function roundUpToNearestMultiple($number, $multiplier = 5) { // Check if the number is already a multiple of the multiplier if ($number % $multiplier == 0) { return $number; } // Calculate the nearest multiple of the multiplier greater than the number $nextMultiple = ceil($number / $multiplier) * $multiplier; // Round the number up to the next multiple return $nextMultiple; }</code>
<code class="php">echo roundUpToNearestMultiple(52); // Outputs 55 echo roundUpToNearestMultiple(55); // Outputs 55 echo roundUpToNearestMultiple(47); // Outputs 50</code>
最も近い倍数に切り上げることに加えて、異なる丸め戦略が必要なシナリオが発生する場合があります。以下にいくつかのバリエーションを示します。
1.現在の数値を除き、次の倍数に四捨五入します
<code class="php">function roundUpToNextMultiple($number, $multiplier = 5) { return roundUpToNearestMultiple($number + 1, $multiplier); }</code>
2.現在の数値を含む最も近い倍数に丸めます
<code class="php">function roundToNearestMultipleInclusive($number, $multiplier = 5) { if ($number % $multiplier == 0) { return $number; } $lowerMultiple = floor($number / $multiplier) * $multiplier; $upperMultiple = ceil($number / $multiplier) * $multiplier; return round($number - $lowerMultiple) > round($upperMultiple - $number) ? $lowerMultiple : $upperMultiple; }</code>
3.整数に切り上げてから最も近い倍数に切り上げます
<code class="php">function roundUpToIntegerAndNearestMultiple($number, $multiplier = 5) { $roundedNumber = ceil($number); if ($roundedNumber % $multiplier == 0) { return $roundedNumber; } return roundUpToNearestMultiple($roundedNumber, $multiplier); }</code>
以上がPHPで最も近い5の倍数に切り上げるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。