Maison > Article > développement back-end > Comment puis-je arrondir efficacement un entier au multiple le plus proche en 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 :
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!