web-dev-qa-db-fra.com

Arrondi des valeurs flottantes

J'ai la valeur double comme 12.256852651 et je veux l'afficher comme 12.257 comme un nombre flottant sans le convertir en un type chaîne.

Comment puis-je le faire en C #?

31
Dharmesh

Je voudrais d'abord convertir en Decimal puis utiliser Math.Round sur le résultat. Cette conversion n'est pas strictement nécessaire, mais je me sens toujours un peu mal à l'aise si j'arrondis à la décimale lorsque j'utilise des virgules flottantes binaires.

Math.Round((Decimal)f, 3, MidpointRounding.AwayFromZero)

Vous devriez également examiner le choix de MidpointRounding , car par défaut, cela utilise le tour de banquier, qui n'est pas ce à quoi vous êtes habitué depuis l'école.

48
CodesInChaos

Si vous voulez l'afficher, ce sera une chaîne et c'est ce que vous devez utiliser.

Si vous voulez arrondir pour pouvoir l'utiliser plus tard dans les calculs, utilisez Math.Round((decimal)myDouble, 3).

Si vous n'avez pas l'intention de l'utiliser dans le calcul mais devez afficher, utilisez double.ToString("F3").

10
Oded