2010-02-08 7 views
5

Possible en double:
c# - How do I round a decimal value to 2 decimal places (for output on a page)arrondir des valeurs décimales jusqu'à 0,01?

How to round decimal value up to nearest 0.05 value??, le SO après l'échéance aborde également le sujet similaire, mais ce ne est pas la sortie i prévu.

J'ai besoin de convertir les valeurs décimales comme celui-ci

16.489-->16.49 
16.482-->16.48 
16.425-->16.43 
7.67 --> 7.67 (no conversion) 

je peux utiliser le ci-dessous la méthode C# pour convertir les valeurs

Math.Round(16.482*20)/20; 

Mais cette méthode ne fonctionne pour moi, il donne les éléments suivants résultats

16.489-->16.5 
16.482-->16.5 
7.67 --> 7.7 
16.425-->16.45 

quelle est la manière élégante de C# de faire cela.

Répondre

14

Math..::.Round Method (Decimal, Int32, MidpointRounding)

Rounds une double précision en virgule flottante au nombre spécifié de décimales. 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) 
+0

Et si vous voulez arrondir au quart le plus proche? alors que 1.489 arrondit à 1.5, mais 1.479 arrondit à 1.475? – Anthony

+0

Math.Round (1.479,2, MidpointRounding.AwayFromZero) arrondir à 1.48 – Fredou

+0

@Fredou, ça marche bien .. merci ... – RameshVel

2

Avez-vous essayé

Math.Round(16.482*200)/200; 
+0

Il n'y a pas une façon plus propre de faire cela? –

+0

Je n'ai aucune idée, je ne sais pas C#. Je sais juste comment fonctionne le code d'exemple. Il multiplie simplement le nombre par l'inverse de l'endroit où vous voulez arrondir, puis divise cette somme par le même inverse pour revenir au même nombre. Vous pouvez utiliser la même idée pour arrondir au quart le plus proche (c'est ainsi que j'ai appris cette astuce). – Anthony

+0

Vous pourriez créer une fonction que vous branchez la valeur et ce que vous voulez arrondir à, mais puisque le SO n'a pas semblé se rendre compte qu'il veut arrondir à .005, je ne suis pas sûr que cela aurait été utile suggérer. – Anthony

Questions connexes