Si j'ai un decimal
, comment puis-je obtenir une version chaîne avec deux décimales? Ce ne fonctionne pas:.NET: chaîne décimale à arrondie
Math.Round(myDecimal, 2).ToString("{0.00}");
Si j'ai un decimal
, comment puis-je obtenir une version chaîne avec deux décimales? Ce ne fonctionne pas:.NET: chaîne décimale à arrondie
Math.Round(myDecimal, 2).ToString("{0.00}");
Ne pas utiliser les accolades, ils sont pour l'intégration d'une valeur formatée dans une chaîne plus longue en utilisant string.Format
. Utilisez ceci:
myDecimal.ToString("0.00");
Peut-être que je me trompe, mais j'ai essayé myDecimal.ToString();
et cela a fonctionné.
+1: Contrairement à 'float' et' double', le type de données 'decimal' conservera le nombre de chiffres de précision, donc' Math.Round (myDecimal, 2) .ToString(); 'devrait fonctionner correctement. Aucune chaîne de format requise. –
En supposant myDecimal
est un System.Decimal
, puis Math.Round(myDecimal, 2).ToString();
affichera deux chiffres décimaux de précision, comme vous voulez, sans aucune chaîne de format (à moins que la valeur absolue de votre nombre est supérieur à 10^27-1). Cela est dû au fait que le type de données decimal
conserve la précision complète du nombre. C'est-à-dire que 1m
, 1.0m
et 1.00m
sont tous stockés différemment et s'afficheront différemment. Notez que cela n'est pas vrai pour float
ou double
. 1f
, 1.0f
et 1.00f
sont stockés et affichent de manière identique, de même que 1d
, 1.0d
et 1.00d
.
Puisque la chaîne de format doit être analysée à l'exécution, je l'omettrais probablement pour le code comme ceci dans la plupart des cas.
Notez que la chaîne de format '" {0.00} "' ne fonctionnerait pas non plus pour 'string.Format'; vous devriez utiliser '" {0: 0.00} "' '' '. – Joey