web-dev-qa-db-fra.com

Deux décimales avec c #

decimal Debitvalue = 1156.547m;

decimal DEBITAMT = Convert.ToDecimal(string.Format("{0:0.00}", Debitvalue));

Je ne dois obtenir que deux décimales, mais en utilisant ce code, je reçois 1156,547. Laissez-moi savoir quel format je dois utiliser pour afficher deux décimales.

53
Kiran Reddy

Si vous voulez arrondir la décimale, regardez Math.Round()

34
cjk

Votre question demande d'afficher deux décimales. L'utilisation du String.format suivant vous aidera:

String.Format("{0:.##}", Debitvalue)

cela affichera alors le nombre avec seulement deux décimales.

Si vous souhaitez que le symbole monétaire soit affiché, utilisez les éléments suivants:

String.Format("{0:C}", Debitvalue)
51
WoofWoof88

Utilisez Math.Round() pour arrondir à deux décimales.

decimal DEBITAMT = Math.Round(1156.547m, 2);
44
Nikhil Agrawal

j'utilise

decimal Debitvalue = 1156.547m;
decimal DEBITAMT = Convert.ToDecimal(string.Format("{0:F2}", Debitvalue));
21
Esteban Perez

La meilleure approche si vous voulez TOUJOURS afficher deux décimales (même si votre nombre n’a qu’une décimale) est d’utiliser

yournumber.ToString("0.00");
18
Kevin Infante

voici une autre approche

decimal decimalRounded = Decimal.Parse(Debitvalue.ToString("0.00"));
16
COLD TOLD

Pour seulement afficher, la propriété de String peut être utilisée comme suit.

double value = 123.456789;
String.Format("{0:0.00}", value);

En utilisant System.Math.Round. Cette valeur peut être assignée à d’autres ou manipulée à volonté.

double value = 123.456789;
System.Math.Round(value, 2);
11

Autrement :

decimal.Round (decimalvalue, 2, MidpointRounding.AwayFromZero);

3
Kabilan Smart

Une autre option consiste à utiliser la méthode Decimal.Round

2
Dimitar Tsonev

Probablement une variante des autres exemples, mais j'utilise cette méthode pour m'assurer également qu'un point est affiché avant les décimales et non une virgule:

someValue.ToString("0.00", CultureInfo.InvariantCulture)
2
AH.