none
erro em subtração RRS feed

  • Pergunta

  • Uso VS2010, aspnet, c#, javascript

    precisei fazer uma operação de subtração em javascript

    valor = 99,99;

    Desconto = 0,01          

    var total = "";

    total = (parseFloat(Valor) - parseFloat(Desconto));

    o estranho é que o resultado deveria ser 99,98

      e o resultado que aparece é esse = 99,97999999999999

    Tô fazendo o que de errado??          


    Álvaro Luiz

    domingo, 24 de fevereiro de 2013 23:31

Respostas

  • amigo, tente arredondar para 2 casas decimais 

    usando 

    var total = 0.00;

    total = (parseFloat(Valor) - parseFloat(Desconto)).toFixed(2);

    e lembre-se de usar o '.' como separador de decimais, não a virgula..

    tente ai e me fala =D

    abraços !

    • Marcado como Resposta Álvaro Luiz quinta-feira, 28 de fevereiro de 2013 14:09
    domingo, 24 de fevereiro de 2013 23:52
  • amigo, olha como eu fiz:

    <html>
    <script>
    var Valor = "99.99";
    var Desconto = "0.01";
    
     var soma = "";
      soma = (parseFloat(Valor) - parseFloat(Desconto)).toFixed(2);
      document.write( soma );
    </script>
    </html>

    para te ajudar..

    Afonso Fernandes.

    • Marcado como Resposta Álvaro Luiz quinta-feira, 28 de fevereiro de 2013 14:10
    segunda-feira, 25 de fevereiro de 2013 00:33

Todas as Respostas

  • amigo, tente arredondar para 2 casas decimais 

    usando 

    var total = 0.00;

    total = (parseFloat(Valor) - parseFloat(Desconto)).toFixed(2);

    e lembre-se de usar o '.' como separador de decimais, não a virgula..

    tente ai e me fala =D

    abraços !

    • Marcado como Resposta Álvaro Luiz quinta-feira, 28 de fevereiro de 2013 14:09
    domingo, 24 de fevereiro de 2013 23:52
  • Olá Afonso,

     a função é esta:

    function Soma() {

                var Valor = "";
                Valor = $("#txtValor").val();
                if (Valor && Valor != "" && Valor != null && Valor != "undefined") {
                    Valor = Valor.replace(',', '.');
                }
                else {
                    Valor = "0";
                }

               var Desconto = "";
                Desconto = $("#txtDesconto").val();
                if (Desconto && Desconto != "" && Desconto != null && Desconto != "undefined") {
                    Desconto = Desconto.replace(',', '.');
                }
                else {
                    Desconto = "0";
                }

               var soma = "";
                soma = ((parseFloat(Valor).toFixed(2) - parseFloat(Desconto).toFixed(2))
                if (soma > 0) {
                    var resultado = "";
                    resultado = soma.toString();
                    resultado = resultado.replace('.', ',');
                    $("#txtTotal").empty;
                    $("#txtTotal").val(resultado);
                }

    mas o erro continua se eu por 99.99 - 0.01 = 99.97999999999999


    Álvaro Luiz

    segunda-feira, 25 de fevereiro de 2013 00:08
  • amigo, olha como eu fiz:

    <html>
    <script>
    var Valor = "99.99";
    var Desconto = "0.01";
    
     var soma = "";
      soma = (parseFloat(Valor) - parseFloat(Desconto)).toFixed(2);
      document.write( soma );
    </script>
    </html>

    para te ajudar..

    Afonso Fernandes.

    • Marcado como Resposta Álvaro Luiz quinta-feira, 28 de fevereiro de 2013 14:10
    segunda-feira, 25 de fevereiro de 2013 00:33
  • Olá Afonso essa sua solução serve pra todos os valores que adicionar em valor e soma? fiz uns testes aqui e o erro permanece.

    Javascript não sabe somar, tenho quase certeza


    Álvaro Luiz

    segunda-feira, 25 de fevereiro de 2013 10:55