Maison > développement back-end > C++ > Comment puis-je arrondir efficacement les nombres au multiple le plus proche en C ?

Comment puis-je arrondir efficacement les nombres au multiple le plus proche en C ?

Susan Sarandon
Libérer: 2024-11-26 14:04:13
original
341 Les gens l'ont consulté

How Can I Efficiently Round Up Numbers to the Nearest Multiple in C  ?

Arrondir à un multiple supérieur d'un nombre en C

Lorsque vous travaillez avec des nombres en programmation, il peut être nécessaire d'arrondir les valeurs à le multiple le plus proche d'un autre nombre. Il existe plusieurs façons d'aborder cette tâche en C , mais cet article se concentrera sur une méthode efficace qui exploite l'arithmétique des nombres entiers pour obtenir un arrondi précis.

L'extrait de code fourni, roundUp, offre une solution simple pour les nombres positifs. Il calcule le reste lorsque le nombre d'entrée numToRound est divisé par le multiple et ajoute le multiple à numToRound si le reste est différent de zéro. Cela garantit que le résultat est le multiple le plus proche supérieur ou égal à l'entrée.

Cependant, pour les nombres négatifs, le code d'origine ne fournit pas le comportement souhaité. Pour prendre en charge les nombres négatifs, une version modifiée de roundUp est introduite. Cette version calcule la valeur absolue du nombre saisi avant d'effectuer l'opération d'arrondi. De plus, il utilise une logique conditionnelle pour ajuster le signe du résultat en fonction du signe de l'entrée. Cela garantit que le résultat est toujours supérieur ou égal à l'entrée, quel que soit son signe.

Voici le code mis à jour pour gérer les nombres positifs et négatifs :

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;
}
Copier après la connexion

Maintenant, le La fonction roundUp fournit un comportement cohérent pour les entrées positives et négatives, garantissant un arrondi précis au multiple le plus proche d'un nombre donné.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal