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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top