在 PHP 中處理數字時,通常需要將它們四捨五入到最接近的特定值。常見的情況是四捨五入到最接近的五的倍數。
尋找一個 PHP 函數,它接受一個整數作為輸入並傳回最接近的五的倍數。例如,當使用 52 呼叫時,它應該會傳回 55。
內建的 round() 函數預設不提供此功能。當使用負精度時,它會四捨五入到最接近的十次方。
要實現所需的捨入行為,可以建立一個自訂函數:
<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 中如何四捨五入到最接近的五的倍數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!