C # duplos mostrar vírgula em vez de período
-
21-08-2019 - |
Pergunta
Eu quase tenho o mesmo problema como o cara neste segmento:
Float Convert que tem período, em vez de vírgula?
Assim que meu
double x = 234.4;
string y = x.ToString();
Eu recebo y == "234,4"
;
Ainda pior ... Double.Parse("234.4")
lança uma exceção.
Eu escrevi um monte de código antes me pediram para período de utilização, em vez de vírgula, então eu preferiria ter alguma maneira de mudar a minha CultureInfo a nível mundial .
Existe alguma configuração nos projetos que eu posso fazer?
Eu tentei:
Application.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Eles tipo de trabalho. Eles trabalham para a maioria parte da aplicação, mas todos os controles que residem nas abas do meu TabControl ainda quer usar meus computadores localizada CultureInfo .
Algumas ideias sobre como resolver isso?
Solução 2
Graças ao comentário Florin Sabaus eu encontrei a solução, que foi para o lugar
Application.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
Em main () bem antes de eu criei o meu formulário.
Agora, eu não vou ter que mudar toda a minha .ToString () e Double.Parse () :-) Yey!
Outras dicas
Você poderia tentar usar
double.Parse("...", CultureInfo.InvariantCulture)
e
x.ToString(CultureInfo.InvariantCulture)
nas partes do programa que você é positivo que você precisa ter período decimal em vez de vírgula ou outras configurações regionais separador decimal dependente.
Hope isso ajuda.
Tente esta solução: http://www.codeproject.com/KB/cs /Change_App_Culture.aspx