Comment, en C#, arrondir une valeur quelconque à l'intervalle 10 ? Par exemple, si j'ai 11, je veux qu'il renvoie 10, si j'ai 136, alors je veux qu'il renvoie 140.
Je peux facilement le faire à la main
return ((int)(number / 10)) * 10;
Mais je cherche un algorithme intégré pour faire ce travail, quelque chose comme Math.Round(). La raison pour laquelle je ne veux pas le faire à la main est que je ne veux pas écrire un code identique ou similaire dans tous mes projets, même pour quelque chose d'aussi simple que ce qui précède.
6 votes
Si cela fonctionne, pourquoi avez-vous besoin d'autre chose ? Il suffit de l'envelopper dans une méthode d'extension ou une bibliothèque commune et de l'utiliser.
3 votes
((nombre + 5)/10) * 10 -- bonne raison de trouver un intégré :-)
2 votes
J'ai remarqué qu'il y a une confusion avec cette question, et vous devriez probablement modifier le titre ou le message pour le rendre plus clair. En particulier, voulez-vous toujours arrondir à l'unité supérieure ou à la dizaine la plus proche ?
2 votes
Raymond, en se basant sur le contenu réel de la question, plutôt que sur le titre, il est évident qu'il s'agit d'arrondir à la dizaine la plus proche. Mais j'ai aussi remarqué cette ambiguïté, et je suis d'accord pour que le titre soit modifié en conséquence.
2 votes
@Adam : Qu'y a-t-il de mal à envelopper une ligne de code simple et directe dans une méthode ? Cela ne me semble pas compliqué ou déroutant.