2010-01-26 5 views

Répondre

8

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"); 
+3

Notez que la chaîne de format '" {0.00} "' ne fonctionnerait pas non plus pour 'string.Format'; vous devriez utiliser '" {0: 0.00} "' '' '. – Joey

2

Peut-être que je me trompe, mais j'ai essayé myDecimal.ToString(); et cela a fonctionné.

+1

+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. –

0

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.