2009-07-30 9 views
5

Est-il vrai que String.Format fonctionne de deux façons: si nous utilisons un format intégré tel que C, N, P .... les paramètres régionaux seront-ils pris en compte? Si nous utilisons un code de format personnalisé tel que #, ## 0.000, les paramètres régionaux ne seront PAS pris en compte?String.Format considère les paramètres régionaux ou non?

Dans mon code, j'utiliser la méthode comme celui-ci

String.Format ("{0: # ## 0.000.}", Valeur);

parce que ma virgule pays utilisent comme séparateur décimal

mais le résultat est toujours: 1,234.500 comme si elle considère point comme séparateur décimal.

Aidez s'il vous plaît!

+5

Avez-vous déjà pris la peine de regarder la documentation de String.Format? –

Répondre

13

Vous voulez utiliser CultureInfo:

value.ToString("N", new CultureInfo("vn-VN")); 

En utilisant String.Format:

String.Format(new CultureInfo("vi-VN"), "N", value); 

Puisque vous êtes à Hanoi (de profil), j'ai utilisé le code du Vietnam, qui est vn-VN.

2

Cela fonctionne.

IFormatProvider iFormatProvider = new System.Globalization.CultureInfo("es-ES"); 

string s = value.ToString("#,##0.000", iFormatProvider); 

string s2 = string.Format(iFormatProvider, "{0:#,##0.000}", val) 

Notez que le , et . utilisent un style en États-Unis 'standard', mais .ToString() et string.Format() avec un fournisseur de format fait la bonne chose.

Questions connexes