Comment arrondir une décimale pour la sortie?
-
22-08-2019 - |
Question
En utilisant C #, je veux formater une décimale pour afficher uniquement deux décimales, puis je vais prendre cette décimal et soustraire à une autre décimale. Je voudrais être en mesure de le faire sans avoir à le transformer en une première chaîne à formater, puis reconvertir à une décimale. Je suis désolé, j'oublie de préciser cela, mais je ne veux pas ronde, je veux juste couper le dernier point décimal. Y a-t-il un moyen de faire cela?
La solution
Si vous ne voulez pas arrondir la décimale, vous pouvez utiliser Decimal.Truncate. Malheureusement, il ne peut tronquer TOUTES les décimales. Pour résoudre ce problème, vous pouvez multiplier par 100, tronquer et diviser par 100, comme ceci:
decimal d = ...;
d = Decimal.Truncate(d * 100) / 100;
Et vous pouvez créer une méthode d'extension si vous faites suffisamment de fois
public static class DecimalExtensions
{
public static decimal TruncateDecimal(this decimal @this, int places)
{
int multipler = (int)Math.Pow(10, places);
return Decimal.Truncate(@this * multipler) / multipler;
}
}
Autres conseils
Vous pouvez utiliser: Math.Round(number,2);
pour arrondir un nombre à deux décimales
Voir cette surcharge spécifique de Math.Round pour des exemples.
Vous ne voulez pas formater alors, mais autour d'elle. Essayez la fonction Math.Round.
Jetez un oeil à Math.Round