Comment arrondir la valeur décimale à 0,05 près?

Existe-t-il un moyen d’arrondir la valeur décimale à la valeur 0,05 la plus proche en .Net?

Ex:

7.125 -> 7.15

6.66 -> 6.7

Si sa maintenant disponible peut quelqu’un me fournir l’algo?

Que diriez-vous:

Math.Ceiling(myValue * 20) / 20 

Utilisez ceci:

 Math.Round(mydecimal / 0.05m, 0) * 0.05m; 

La même logique peut être utilisée dans T-SQL:

 ROUND(@mydecimal / 0.05, 0) * 0.05 

Je préfère cette approche à la réponse choisie simplement parce que vous pouvez voir directement la précision utilisée.

Quelque chose comme ça devrait marcher pour n’importe quelle étape, pas seulement 0.05:

 private decimal RoundUp (decimal value, decimal step) { var multiplicand = Math.Ceiling (value / step); return step * multiplicand; } 

Math .. ::. Round, méthode (Decimal, Int32, MidpointRounding)

Arrondit une valeur à virgule flottante en double précision au nombre spécifié de chiffres fractionnaires. Un paramètre spécifie comment arrondir la valeur si elle est à mi-chemin entre deux autres nombres.

  Math.Round(1.489,2,MidpointRounding.AwayFromZero) 

Dupliqué ici et ici pour rbuy et python. Ça ne devrait pas être trop différent.