C # doppie mostrano virgola invece di periodo
-
21-08-2019 - |
Domanda
ho quasi lo stesso problema come il ragazzo in questa discussione:
Convert galleggiante che ha termine al posto di una virgola?
In modo che il mio
double x = 234.4;
string y = x.ToString();
ho y == "234,4"
;
Ancora peggio ... Double.Parse("234.4")
genera un'eccezione.
Ho scritto un sacco di codice prima mi è stato chiesto di usare periodo, invece di una virgola, così io preferirei avere un modo per cambiare il mio CultureInfo a livello mondiale .
C'è una certa regolazione nei progetti che posso fare?
Ho provato:
Application.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Si tipo di lavoro. Lavorano per la maggior parte della domanda, ma tutti i controlli che si trovano nelle schede della mia TabControl ha ancora voglia di usare il mio computer localizzato CultureInfo .
Tutte le idee su come risolvere questo?
Soluzione 2
Grazie a Florin Sabaus commento che ho trovato la soluzione, che era a posto
Application.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
In main () a destra prima ho creato la mia forma.
Ora non voglio dover cambiare tutta la mia .ToString () e Double.Parse () :-) Yey!
Altri suggerimenti
Si potrebbe provare a utilizzare
double.Parse("...", CultureInfo.InvariantCulture)
e
x.ToString(CultureInfo.InvariantCulture)
nelle parti del programma che si sono positivi è necessario avere periodo decimali al posto di virgola o altre impostazioni internazionali separatore decimale dipendente.
Speranza che aiuta.
Prova questa soluzione: http://www.codeproject.com/KB/cs /Change_App_Culture.aspx