locked
Virgula e Ponto no TextBox! RRS feed

  • Pergunta

  • Boa  Tarde pessoal preciso de ajuda

    estou desenvolvendo um app de calculo e ele esta com o seguinte problema 

    o meu código é o seguinte :

    private double CalculoMF()
            {
                
                double mediaFinal = 0.00, boxNotaAluno50 = 0.00, notaAluno = 0.00, fichamento = 0.00, portifolio = 0.00, pu = 0.00;
    
                boxNotaAluno50 = Convert.ToDouble(boxNota50.Text);
                notaAluno = Convert.ToDouble(boxNotaAluno.Text);
                fichamento = Convert.ToDouble(boxFichamento.Text);
                portifolio = Convert.ToDouble(boxPortifolio.Text);
                pu = Convert.ToDouble(boxPU.Text);
    
     mediaFinal = ((boxNotaAluno50 + notaAluno) / 2 * 0.8 + (fichamento * 0.1) + (portifolio * 0.1)) + pu;
    
    }

    Até ai tudo bem fiz tudo certinho e coloquei pra mostrar o resultado da soma em um textBlock o resultado aparece normal porem ao alimentar o campo exemplo:

    boxnota50: 6,00

    notaaluno: 7,00

    fichamento: 10,0

    Portfolio: 10,00

    PU: 1,00

    pronto alimentando com esse valores ele vai me apresentar um resultado com a media de 400.

    isso acontece por causa da virgula ele ta achando que 6,0 é igual a 60. 

    caso eu faça o mesmo precedimento colocando um ponto 6.0 ele vai me da o resultado certo.

    alguém pode me ajudar a resolver isso?

     

    Frases S2 - http://www.windowsphone.com/pt-br/store/app/frases-s2/72e15f77-a5ad-43ba-a752-3d2e09743008#

    sexta-feira, 5 de setembro de 2014 17:29

Respostas

  • Isso acontece por que a separação de milhar nos EUA é feita por virgula ex: 1,000(MIL),

    já no Brasil é feita por ponto ex: 1.000(MIL),

    Então o que você deve fazer é utilizar o método REPLACE, Ex:

    //SUBSTITUINDO A VIRGULA POR PONTO variavel.ToString().Replace(",","."); //SUBSTITUINDO O PONTO POR VIRGULA variavel.ToString().Replace(".",","); //VOCÊ TAMBÉM PODE SUBSTITUIR POR NADA variavel.ToString().Replace(",",""); variavel.ToString().Replace(".","");

    • Marcado como Resposta JadsonxSantos sábado, 6 de setembro de 2014 19:50
    sábado, 6 de setembro de 2014 18:46

Todas as Respostas

  • Isso acontece por que a separação de milhar nos EUA é feita por virgula ex: 1,000(MIL),

    já no Brasil é feita por ponto ex: 1.000(MIL),

    Então o que você deve fazer é utilizar o método REPLACE, Ex:

    //SUBSTITUINDO A VIRGULA POR PONTO variavel.ToString().Replace(",","."); //SUBSTITUINDO O PONTO POR VIRGULA variavel.ToString().Replace(".",","); //VOCÊ TAMBÉM PODE SUBSTITUIR POR NADA variavel.ToString().Replace(",",""); variavel.ToString().Replace(".","");

    • Marcado como Resposta JadsonxSantos sábado, 6 de setembro de 2014 19:50
    sábado, 6 de setembro de 2014 18:46
  • Obrigado, quando eu mudei a região do celular voltou a funcionar rrsrsrs mesmo assim obrigado pode me ajudar futuramente 

    Frases S2 - http://www.windowsphone.com/pt-br/store/app/frases-s2/72e15f77-a5ad-43ba-a752-3d2e09743008#

    sábado, 6 de setembro de 2014 19:50