Maison >développement back-end >tutoriel php >Comment arrondir au multiple de cinq le plus proche en PHP ?
Lorsque vous travaillez avec des nombres en PHP, il est souvent nécessaire de les arrondir à la valeur spécifique la plus proche. Un scénario courant consiste à arrondir au multiple de cinq le plus proche.
Une fonction PHP est recherchée qui prend un entier en entrée et renvoie son multiple de cinq le plus proche. Par exemple, lorsqu'elle est appelée avec 52, elle doit renvoyer 55.
La fonction round() intégrée ne fournit pas cette fonctionnalité par défaut. Lorsqu'il est utilisé avec une précision négative, il arrondit à la puissance dix la plus proche.
Pour obtenir le comportement d'arrondi souhaité, une fonction personnalisée peut être créée :
<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>
En plus d'arrondir au multiple supérieur le plus proche, vous pouvez rencontrer des scénarios dans lesquels différentes stratégies d'arrondi sont nécessaires. Voici quelques variantes :
1. Arrondir au multiple suivant, à l'exclusion du nombre actuel
<code class="php">function roundUpToNextMultiple($number, $multiplier = 5) { return roundUpToNearestMultiple($number + 1, $multiplier); }</code>
2. Arrondir au multiple le plus proche, y compris le nombre actuel
<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. Arrondir à un nombre entier, puis au multiple le plus proche
<code class="php">function roundUpToIntegerAndNearestMultiple($number, $multiplier = 5) { $roundedNumber = ceil($number); if ($roundedNumber % $multiplier == 0) { return $roundedNumber; } return roundUpToNearestMultiple($roundedNumber, $multiplier); }</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!