在 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中文网其他相关文章!