Maison  >  Article  >  développement back-end  >  Comment puis-je arrondir efficacement un entier au multiple le plus proche en C ?

Comment puis-je arrondir efficacement un entier au multiple le plus proche en C ?

DDD
DDDoriginal
2024-11-25 14:21:12323parcourir

How can I efficiently round up an integer to the nearest multiple in C  ?

Arrondir des entiers jusqu'à des multiples

En C, arrondir une valeur entière au multiple le plus proche d'un autre nombre est une opération simple. La fonction suivante accomplit cette tâche de manière efficace et précise :

int roundUp(int numToRound, int multiple) {
    if (multiple == 0) {
        return numToRound;
    }

    int remainder = abs(numToRound) % multiple;
    if (remainder == 0) {
        return numToRound;
    }

    if (numToRound < 0) {
        return -(abs(numToRound) - remainder);
    } else {
        return numToRound + multiple - remainder;
    }
}

Cette fonction prend deux arguments entiers : la valeur à arrondir (numToRound) et le multiple auquel l'arrondir (multiple). Elle renvoie la valeur arrondie sous forme d'entier.

La fonction vérifie d'abord si le multiple est nul. Si tel est le cas, la fonction renvoie la valeur d'origine inchangée.

Si le multiple n'est pas nul, la fonction calcule la valeur absolue du reste de la division de numToRound par multiple. Cela donne la différence entre la valeur d'origine et le multiple le plus proche en dessous.

Ensuite, la fonction vérifie si la valeur d'origine est négative. Si tel est le cas, il ajuste la valeur arrondie en conséquence pour garantir qu'elle est toujours supérieure ou égale à la valeur d'origine. Pour les valeurs positives, la fonction ajoute simplement le montant nécessaire pour arrondir au multiple supérieur le plus proche.

Exemples

Considérez les exemples suivants :

  • roundUp(7, 100) → 100
  • roundUp(117, 100) → 200
  • roundUp(477, 100) → 500
  • roundUp(52, 20) → 60
  • roundUp(74, 30) → 90

Dans chaque cas, la fonction arrondit correctement la valeur d'origine au multiple le plus proche de la valeur donnée plusieurs.

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