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

Comment arrondir efficacement au multiple le plus proche en C ?

DDD
DDDoriginal
2024-11-29 03:10:09342parcourir

How to Efficiently Round Up to the Nearest Multiple in C  ?

Meilleure approche pour arrondir aux multiples supérieurs en C

En C, arrondir un nombre au multiple supérieur le plus proche d'un nombre donné peut être obtenu efficacement en utilisant la technique suivante :

int roundUp(int numToRound, int multiple)<br>{</p>
<pre class="brush:php;toolbar:false">if (multiple == 0)
    return numToRound;

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

return numToRound + multiple - remainder;

}

Cette méthode utilise l'arithmétique entière de base pour calculer le multiple le plus proche pour les nombres positifs. C'est simple et fonctionne efficacement.

Gestion des nombres négatifs

Lors de l'arrondi des nombres négatifs, la définition de « vers le haut » devient ambiguë. En fonction de l'application spécifique, différentes interprétations de l'arrondi peuvent être appropriées. La solution fournie suppose que l'arrondi signifie un résultat toujours supérieur ou égal au nombre saisi :

int roundUp(int numToRound, int multiple)<br>{</p>
<pre class="brush:php;toolbar:false">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 modifiée garantit que quel que soit le signe de l'entrée nombre, le résultat ne sera jamais inférieur à l'entrée elle-même.

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