2009-03-30 4 views
1

En utilisant C#, je veux mettre en forme un nombre décimal pour afficher seulement deux décimales, puis je vais prendre ce nombre décimal et le soustraire à une autre décimale. Je voudrais être capable de le faire sans avoir à le transformer en une chaîne à formater d'abord, puis le convertir en une décimale. Je suis désolé d'avoir oublié de le spécifier mais je ne veux pas arrondir, je veux juste couper le dernier point décimal. Y a-t-il un moyen de faire cela?Comment arrondir un nombre décimal pour la sortie?

Répondre

8

Si vous ne souhaitez pas arrondir la décimale, vous pouvez utiliser Decimal.Truncate. Malheureusement, il ne peut tronquer que 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 assez 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; 
    } 
} 
2

Vous ne voulez pas formater alors, mais autour d'elle. Essayez la fonction Math.Round.

Questions connexes