Question

J'ai presque le même problème que le gars dans ce fil:

Convertir Float qui a la période au lieu de la virgule?

Alors que mon

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

Je reçois y == "234,4";

Pire encore ... lève une exception Double.Parse("234.4").

Je l'ai écrit beaucoup de code avant on m'a demandé d'utiliser la période au lieu de virgule, donc je préférerais avoir d'une certaine façon de changer mon CultureInfo au niveau mondial .

Y at-il un certain arrangement dans les projets que je peux faire?

J'ai essayé:

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

Ils genre de travail. Ils travaillent pour la plupart partie de l'application, mais tous les contrôles qui se trouvent dans les onglets de mon TabControl veut toujours utiliser mes ordinateurs Localisée CultureInfo .

Des idées sur la façon de résoudre ce problème?

Était-ce utile?

La solution 2

Merci à Florin Sabaus commentaire que je trouve la solution, qui devait placer

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

Main () juste avant que je crée ma forme.

Maintenant, je ne vais pas devoir changer tout mon .ToString () et Double.Parse () :-) Yey!

Autres conseils

Vous pouvez essayer d'utiliser

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

et

x.ToString(CultureInfo.InvariantCulture)

dans les parties du programme que vous êtes positif, vous devez avoir la période décimale au lieu de virgule ou d'autres paramètres régionaux dépendant séparateur décimal.

it helps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top