Quelle est la différence entre ToString("N2")
et ToString("0.00")
?
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é
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.
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.
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
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.