Ir para conteúdo

POWERED BY:

Arquivado

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

dummy.php

[Resolvido] Soma de valores retorna Nan

Recommended Posts

Boa tarde!!!

 

Estou tentando somar valores vindos de um formulário dentro de FOR(){} no entanto ele não retorna a soma mesmo eu tento colocado o parseFloat() na hora de capturar os valores dos campos. Alguém sabe o pq? segue o código:

function calcular($itens){	  	var total;	  	for (i=1;i<=$itens;i++)			{			total = total+parseFloat(document.getElementById('PRECO'+i).value);			}			window.alert(total);	  }
Agradeço desde já Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

          function calcular($itens){
                var total = 0;
                for (i=1;i<=$itens;i++)
                        {
                        total = total+parseFloat(document.getElementById('PRECO'+i).value);
                        }
                        window.alert(total);
          }

 

document.getElementById('PRECO'+i)

o que essa linha te retorna?

 

pode ser q a formatação esteja errada.

 

1,99 deve ser 1.99

Compartilhar este post


Link para o post
Compartilhar em outros sites

document.getElementById('PRECO'+i)

o que essa linha te retorna?

 

pode ser q a formatação esteja errada.

 

1,99 deve ser 1.99

 

Normalmente retorna 60.000000 no primeiro campo e 30.000000 somando teria que dar 90.000000.

Mas mesmo se eu colocar qualquer outro valor nos campos dá pau =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora foi, iniciei a variavel total com 0.0

$itens é número de linhas que está sendo exibido na tela

 

Código final

	<script>
	function calcularPrecoProduto(){
	  	var total = 0.0;
	  	for (i=1;i<=<?php echo $item-1; ?>;i++)
		{
			var qtd = parseFloat(document.getElementById('QTD_PED'+i).value);
			var preco = parseFloat(document.getElementById('PRECO'+i).value);
			var subtotal = preco*qtd;
			total = total+subtotal;
		}
			document.getElementById('TOTAL').value = total;
	  }
	</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há a real necessidade de fazer o parseFloat? Eu fiz uns testes aqui e consegui trabalhar com dados pegos direto da input, realizando contas sem problema "/

Uma vez que não existe tipagem em Javascript, qual a necessidade do parse?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, como eu disse o problema era a inicialização da variável a partir do momento que iniciei ela com 0.0 ele já entendeu que é um Float. Se eu tirar o parseFloat() do dado vindo do formulário provavelmente vai continuar funcionando, mas não vejo nenhuma vantagem em termos de perfomance que me faça mexer nisso, pelo contrário, é a garantia que vai vir um float do campo. Então creio que como está já me atende.

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.