Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

p1r4t4

Problemas com soma de ponto flutuante (parseFloat)

Recommended Posts

Tenho um script que soma o valor passado com o parseFloat de um <span>:

 

function calcula_valores(valor,checkbox,form){	hidden_descricao_quitacao = 'nomequitacao.'+checkbox.value;	if(checkbox.checked == true){ 		form.descricao_quitacao.value = document.getElementById(hidden_descricao_quitacao).value+ ' '+form.descricao_quitacao.value;		document.getElementById('total_atual').innerHTML = parseFloat(document.getElementById('total_atual').innerHTML) + valor;	}else{		document.getElementById('total_atual').innerHTML = parseFloat(document.getElementById('total_atual').innerHTML) - valor;	}		}

Função sendo chamada em alguns dos checkbox:

onClick="java script:calcula_valores(4.32,this,document.frmSegundaVia);"onClick="java script:calcula_valores(21.45,this,document.frmSegundaVia);"

Aglumas soma ocorre sem problemas, já outras dá este problema:

20.17 + 21.45 = 41.620000000000004

21.45 - 21.45 = 3.552713678800501e-15

 

Não existe um parseReal??? Eu não posso usar o parseInt pois tem os centavos que preciso somar.

 

Aguardo ajuda

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É ele mesmo que eu estou usando... e ele que está me retornando doze zeros e um 5 no fim, sendo que a soma é com dois numeros que só tem 2 casas decimais

20.17 + 21.45 = 41.620000000000005 - isso na soma!!

 

Na subtração:

10.65 - 10.65 = 1.7763568394002505e-15

 

:wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa distração minha, foi mau, dê alerts do que tá vindo em "valor" e "document.getElementById(hidden_descricao_quitacao).value" e por que faz isso(form.descricao_quitacao.value)?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu dei os alerts, o valor que é passado e que já está no <span> estão corretos, ai no processo da soma ele da zica !! :blink:

 

form.descricao_quitacao.value -> com o nome do formulário passado por parametro, o value do checkbox e o texto 'nomequitacao', eu concateno e monto o nome de um campo hidden (de nome: nomequitacao.00000) que depois é usado para compor um textarea para descrever os tributos que o contribuinte está quitando (IPTU - 2006 IPTU - 2004 TXXL 2001).

 

Não existe algo que não seja nem float nem inteiro??? Tipo.. real por exemplo?

 

Valeu pela força até agora http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

então você tem certeza q o "valor" e que "document.getElementById(hidden_descricao_quitacao).value" estão com os números batendo?experimente, só para testar tirar "(form.descricao_quitacao.value)"e outra na existe algo assim: parseReal, é só o q a gente tá tentando msm, vai dá uma olhada ai........

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.