2009-07-30 10 views
5

Stimmt es, dass String.Format 2 Möglichkeiten funktioniert: Wenn wir das eingebaute Format wie C, N, P ... verwenden, berücksichtigt es die Gebietsschemaeinstellungen? Wenn wir benutzerdefinierten Formatcode wie #, ## 0.000 verwenden, werden die Gebietsschemaeinstellungen NICHT berücksichtigt?String.Format Gebietsschema oder nicht?

In meinem Code, ich benutze Methode wie diese

String.Format ("{0: # ## 0,000.}", Value);

, weil mein Land das Komma als Dezimaltrennzeichen

aber das Ergebnis ist immer noch: 1,234.500, als ob es Punkt als Dezimalzeichen betrachten.

Bitte helfen!

+5

Haben Sie sich jemals die Dokumentation von String.Format angesehen? –

Antwort

13

Sie wollen CultureInfo verwenden:

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

String.Format Verwendung:

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

Da Sie in Hanoi (vom Profil) sind, habe ich Vietnams Code, der vn-VN ist.

2

Das funktioniert.

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

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

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

Beachten Sie, dass die , und . werden mit einem 'Standard' en-US-Stil, aber .ToString() und string.Format() mit einem Format-Provider das Richtige tut.

Verwandte Themen