Accept cents in a javascript code

0

Hello, I can not get the Code accepted cents follow the javascript code, someone gives a light on it.

<script>
total = 0;

function adiciona(id)
{
	calcula(id,"adicao");
}

function remove(id)
{
	calcula(id,"subtracao");
}    
	
function calcula(id,operacao)
{
	nomeid  = "nome"+id;
	precoid = "preco"+id;
	qtdid   = "qtd"+id;
	
	nome  = document.getElementById(nomeid).innerHTML;
	
	preco = document.getElementById(precoid).innerHTML;    
	preco = parseInt(preco);
	
	qtd   = document.getElementById(qtdid).innerHTML;
	qtd   = parseInt(qtd);

	//Debug
	//alert("Produto: " + nome + "\n Preço: " + preco);    
	
	if(operacao=="adicao")
	{
		total = total + preco;
		qtd = qtd + 1;
	}
	else
	{
		total = total - preco;
		qtd = qtd - 1;
	}
	
	document.getElementById(qtdid).innerHTML = qtd;
	document.getElementById("total").innerHTML = total;
}   
</script>

<script>
function verifica_e_envia()
{
	array_dados = new Array();
	
	colecao = document.getElementsByTagName("tr");
		
	qtd_blocos = colecao.length - 1; // O último tr da tabela é onde fica o total e está sendo descontado
	// É necessário saber a quantidade de blocos para poder usar em um loop catando os valores
		
	// Percorre os blocos catando nomes, quantidades e valores dos produtos com quantidade maior que zero
	for(i=1; i<=qtd_blocos ;i++)
	{
		qtdid = "qtd"+i;
		qtd   = document.getElementById(qtdid).innerHTML;
		qtd   = parseInt(qtd);
			
		if(qtd>0)
		{
			obj_tmp = {};
				
			nomeid = "nome"+i;
			nome   = document.getElementById(nomeid).innerHTML;
				
			precoid = "preco"+i;
			preco   = document.getElementById(precoid).innerHTML;
			preco   = parseFloat(preco);

			obj_tmp.nome  = nome;
			obj_tmp.preco = preco;
			obj_tmp.qtd   = qtd;
			obj_tmp.subtotal = qtd*preco;
				
			// adiciona elemento no array de dados que será enviado
			array_dados.push(obj_tmp);
		}
	}
		
	// põe o array_dados no input hidden json_dados
	document.getElementById("json_dados").value = JSON.stringify(array_dados);
		
	// envia o formulário form_pedido_produtos
	document.getElementById("form_pedido_produtos").submit();
}
</script>		

ascript

    
asked by anonymous 05.01.2017 / 02:57

2 answers

1

Friend use parseFloat(var.toFixed(2)); .

Example:   var valor = 10000.100000; var arredondado = parseFloat(valor.toFixed(2));

Return 10000.10

    
05.01.2017 / 23:51
0

Dude, you see ... a teacher of mine gave me this code here when I was in the faculty.

    function moeda(valor, casas, separdor_decimal, separador_milhar){ 

 var valor_total = parseInt(valor * (Math.pow(10,casas)));
 var inteiros =  parseInt(parseInt(valor * (Math.pow(10,casas))) / parseFloat(Math.pow(10,casas)));
 var centavos = parseInt(parseInt(valor * (Math.pow(10,casas))) % parseFloat(Math.pow(10,casas)));


 if(centavos%10 == 0 && centavos+"".length<2 ){
  centavos = centavos+"0";
 }else if(centavos<10){
  centavos = "0"+centavos;
 }

 var milhares = parseInt(inteiros/1000);
 inteiros = inteiros % 1000; 

 var retorno = "";

 if(milhares>0){
  retorno = milhares+""+separador_milhar+""+retorno
  if(inteiros == 0){
   inteiros = "000";
  } else if(inteiros < 10){
   inteiros = "00"+inteiros; 
  } else if(inteiros < 100){
   inteiros = "0"+inteiros; 
  }
 }
  retorno += inteiros+""+separdor_decimal+""+centavos;


 return retorno;

}

Test the old man !! I hope I have helped.

    
05.01.2017 / 03:19