44 votes

Différence entre ToString("N2") et ToString("0.00")

Quelle est la différence entre ToString("N2") et ToString("0.00") ?

16voto

Sam Jones Points 765

Tout est question de décimales

N2 fonctionnera de la même manière pour 500,00, mais lorsque vous aurez 5000,00, N2 s'affichera comme

5 000,00

à la place de

5000,00

Voir Chaînes de format numérique standard pour plus d'informations.

15voto

arbbot Points 43

Fondamentalement, ToString("N2") utilisera le CultureInfo pour formater le nombre. Cela signifie que votre séparateur de milliers peut être différent selon le CultureInfo utilisé. Vous pouvez également transmettre le CultureInfo souhaité si vous le souhaitez.

5voto

Karsten Gutjahr Points 266

Les deux vous donnent deux décimales, mais vous pouvez facilement voir la différence si vous vérifiez des nombres plus grands :

 var d = 1234567.89;
for (var i = 0; i < 10; ++i) {
    Console.WriteLine(d.ToString("N2") + "\t" + d.ToString("0.00"));
    d /= 10.0;
}

les sorties

 1.234.567,89    1234567,89
123.456,79  123456,79
12.345,68   12345,68
1.234,57    1234,57
123,46  123,46
12,35   12,35
1,23    1,23
0,12    0,12
0,01    0,01
0,00    0,00

Exécutez le code en ligne sur dotnetfiddle.net

3voto

markd Points 31

Le séparateur de milliers est un problème. L'utilisation de "n2" vous donnera 3 543, tandis que l'utilisation de "0.00" vous donnera 3543. La virgule peut casser le code en aval qui pourrait devoir analyser cette valeur en une décimale, en particulier js côté client.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X