Arrondissant à un multiple d'un nombre en c
Lorsque vous travaillez avec des nombres en programmation, il peut être nécessaire de compléter les valeurs vers le multiple le plus proche d'un autre numéro. Il existe plusieurs façons d'approcher cette tâche en C, mais cet article se concentrera sur une méthode efficace qui exploite l'arithmétique entier pour réaliser un arrondissement précis.
L'extrait de code fourni, Roundup, offre une solution simple pour des 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 non nul. Cela garantit que le résultat est le multiple le plus proche qui est supérieur ou égal à l'entrée.
Cependant, pour les nombres négatifs, le code d'origine ne fournit pas le comportement souhaité. Pour s'adapter aux nombres négatifs, une version modifiée de Roundup est introduite. Cette version calcule la valeur absolue du numéro d'entrée 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 (numToRoundMaintenant, 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 numéro donné.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3