Frage

Ich habe fast das gleiche Problem wie der Typ in diesem Thread:

Float konvertieren, die Zeit statt Komma hat?

Damit meine

double x = 234.4;
string y = x.ToString();

ich y == "234,4";

Noch schlimmer ... Double.Parse("234.4") löst eine Ausnahme aus.

Ich habe eine Menge Code geschrieben, bevor ich gebeten wurde, Zeit statt Komma zu verwenden, so würde ich es vorziehen haben in gewisser Weise meine Culture auf globaler Ebene zu ändern .

Gibt es eine Einstellung in den Projekten, die ich tun kann?

Ich habe versucht:

        Application.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");

Sie Art von Arbeit. Sie arbeiten für die meist Teil der Anwendung, aber alle Steuerelemente, die noch in den Registerkarten meiner TabControl wohnen will meinen Computer benutzen Lokalisierten Culture .

Alle Ideen, wie dieses Problem zu lösen?

War es hilfreich?

Lösung 2

Dank Florin Sabaus Kommentar ich die Lösung gefunden, der Platz war zu

        Application.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");

in Main (), kurz bevor ich meine Form erstellt.

Jetzt werde ich nicht alle meine .ToString ändern müssen () und Double.Parse () :-) Yey!

Andere Tipps

Sie könnten versuchen, zu verwenden,

double.Parse("...", CultureInfo.InvariantCulture)

und

x.ToString(CultureInfo.InvariantCulture)

in den Teilen des Programms, das Sie positiv sind Sie Dezimal-Zeit haben müssen, anstatt Komma oder anderen regionalen Einstellungen abhängig Dezimaltrennzeichens.

Hoffe, es hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top