web-dev-qa-db-fra.com

Différence entre ToString ("N2") et ToString ("0,00")

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

37
Rupa Mistry

De chaînes de format numérique standard

Le nombre est converti en une chaîne de la forme "-d, ddd, ddd.ddd…", où '-' indique un symbole numérique négatif si nécessaire, 'd' indique un chiffre (0-9), ',' indique un séparateur de mille entre les groupes de nombres, et '.' indique un symbole de point décimal.

Il semblerait que N inclura des milliers de séparateurs, tandis que 0.00 ne le sera pas.

Voir aussi Chaînes de format numérique personnalisé

34
Adriaan Stander

Fondamentalement, ToString("N2") utilisera 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.

14
arbbot

Tout dépend des décimales

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

5.000,00

au lieu de

5000,00

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

11
Sam Jones

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

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

4
Karsten Gutjahr

Le séparateur de mille est un problème. L'utilisation de "n2" vous donnera 3 543 alors que l'utilisation de "0,00" vous donnera 3543. La virgule peut décomposer le code en aval qui pourrait avoir à analyser cette valeur à une décimale, en particulier js côté client.

3
markd