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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top