Problema na conversão de números decimais (de string para float)

Respondido Problema na conversão de números decimais (de string para float)

  • terça-feira, 10 de julho de 2012 00:12
     
     
    Pessoal, estou criando uma aplicação onde o usuário digita um número em um TextBox e este número é adicionado em uma fila de floats.

    Em seguida, percorro essa fila para buscar os elementos adicionados e realizar alguns cálculos com eles.

    O problema é que, quando o valor digitado pelo usuário no TextBox é convertido pra float para ser inserido na fila, a conversão não funciona para números decimais. Isso ocorre quando o "." é utilizado para separar a parte inteira da parte decimal. Se eu utilizar "," a conversão funciona corretamente (porém, no teclado com InputScope="Number", apenas o "." é exibido).

    Existe alguma forma de evitar este problema na conversão de uma string de números para um valor float, quando o separador das casas decimais é "."?

Todas as Respostas

  • terça-feira, 10 de julho de 2012 09:41
     
     Respondido Contém Código

    Marcos, basta indicares o CultureInfo.InvariantCulture na conversão, como este exemplo:

    string numText = "123.45";
    
    float num = float.Parse(numText, System.Globalization.CultureInfo.InvariantCulture);


    Pedro Lamas
    DevScope | Senior Software Development Engineer & WP7 Development Speaker
    www.pedrolamas.com | @pedrolamas

  • quarta-feira, 11 de julho de 2012 03:12
     
     

    Olá Pedro!

    Realmente era isso mesmo! Quando o telefone estava configurado com a região e idioma "Português (Brasil)", a conversão não funcionava. Se o telefone estivesse configurado com "English (United States)", aí funcionava.

    Adicionei o CultureInfo.InvariantCulture na conversão e agora está funcionando.

    Obrigado pela ajuda!