Arrondir au +5 supérieur

[Résolu]
Signaler
Messages postés
142
Date d'inscription
jeudi 10 février 2005
Statut
Membre
Dernière intervention
2 octobre 2008
-
Messages postés
129
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
30 décembre 2007
-
Bonjour,
c'est peut etre une question de débutant, mais je n'arrive pas à savoir comment faire pour arrondir un nombre au +5 supérieur.... Heu, un petit exemple pour mieux comprendre :
Comment arrondir 58 en 60, ou comment arrondir 52 en 55...?

Vous savez ?
Merci d'avance...
A voir également:

3 réponses

Messages postés
129
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
30 décembre 2007
3
Salut zigxag,
Voilà une solution possible:
int result = (int)Math.Ceiling(val / 5.0) * 5;
// où val est le nombre à arrondir.
Explication:
Tu divises ton nombre par 5 (ou plus exactement par 5.0 pour avoir une valeur flottante), tu arrondis le résultat à l'entier supérieur (avec Ceiling()) puis tu multiplies par 5.Exemple: 58 / 5.0 11.6, donc 12 * 5 60.
Si tu voulais arrondir au -5 inférieur, il suffirait de remplacer Math.Ceiling() par Math.Floor().
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
10
Une solution pourrait etre :

int nombreArrondi = (int)(decimal.Round((decimal)nombreInitial / 10) * 10);
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
10
oups petite erreur j'avais mal lu la question...

Pour arrondir de 5 en 5, "au +5 supérieur", tu peux faire par exemple :

public int Round(int n)
{
int r;
int q = Math.DivRem(n, 5, out r);
if (r != 0)
{
q++;
}
return (q * 5);
}