Maison >développement back-end >tutoriel php >Comment arrondir au multiple de cinq le plus proche en PHP ?

Comment arrondir au multiple de cinq le plus proche en PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-27 08:39:03451parcourir

How to Round Up to the Nearest Multiple of Five in PHP?

Arrondi 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.

Énoncé du problème

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.

Solution

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>

Exemple d'utilisation

<code class="php">echo roundUpToNearestMultiple(52); // Outputs 55
echo roundUpToNearestMultiple(55); // Outputs 55
echo roundUpToNearestMultiple(47); // Outputs 50</code>

Autres stratégies d'arrondi

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn