Ir para conteúdo

POWERED BY:

Arquivado

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

btrevisol

[Resolvido] Mostrar valores com virgula!

Recommended Posts

Bom galera estou postando aqui esse topico que esta no forum do PHP, porque eu não sabia que tinha esse especifico para javascript, então desculpa.

 

Estou com o seguinte problema, tenho valores em varios campos textos que são somandos, e quando vai mostrar o resultado ele não soma os valores antes da virgula.

 

por exemplo 100.50 + 100 + 200 e na verdade tem que aparecer 200.50

 

Vou colocar o codigo aqui, mas eu tirei varias linhas para não ficar muito grande, mas eu só tirei as repetições.

 

Obrigado

<html>  
   <head>  
       <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script>  
       <script type="text/javascript">  
       $(document).ready(function(){  
           $("select[name='precos']").change(function(){  
               var valor = $("input[name='valor']");  
               var entrada = $("input[name='entrada']");
               var hospedagem = $("input[name='hospedagem']");
               var valor_a_vista = $("input[name='valor_a_vista']");								

                   $.getJSON(  
                       'function.php',  
                       { id_preco: $( this ).val() },  
                       function( json )  
                       {  
                           $( valor ).val( json.valor );  
                           $( entrada ).val( json.entrada );
                           $( hospedagem ).val( json.hospedagem );
                           $( valor_a_vista ).val( json.valor_a_vista );							
                       }  
                   );  
           });  
       });
	function somar_total()
	{
	  var numero5=document.getElementById('numero5').value;
	  var numero1=document.getElementById('numero1').value;
	  var total =parseInt(numero5)+parseInt(numero1);
	  document.getElementById('resultado_total').innerHTML="Valor Total: R$ " + total.toFixed(2);
	}
	function somar_total_mensal()
	{
	  var numero3=document.getElementById('numero3').value;
	  var numero6=document.getElementById('numero6').value;
	  var total_mensal =parseInt(numero3)+parseInt(numero6);
	  document.getElementById('resultado_total_mensal').innerHTML="Valor Mensal: R$ " + total_mensal.toFixed(2);
	}

/* aqui inicia a função ao clicar no checkbox */
function checar() {

/* é criado uma var para cada checkbox */
campo1 = document.form.check1;
campo2 = document.form.check2;
campo3 = document.form.check3;
campo4 = document.form.check4;
campo5 = document.form.check5;
campo6 = document.form.check6;
campo7 = document.form.check7;
campo8 = document.form.check8;

/* se o checkbox1 for checado, é somado o valor dele */
if(campo1.checked==true) {
valor1=campo1.value;
hospedagem1= campo16.value;
valorvista1= campo31.value;
entrada1= campo46.value; 
} else {
valor1="";
hospedagem1="";
valorvista1="";
entrada1="";
}
/* se o checkbox2 for checado, é somado o valor dele */
if(campo2.checked==true) {
valor2=campo2.value;
hospedagem2= campo17.value;
valorvista2= campo32.value;
entrada2= campo47.value; 
} else {
valor2="";
hospedagem2="";
valorvista2="";
entrada2="";
}
/* se o checkbox3 for checado, é somado o valor dele */
if(campo3.checked==true) {
valor3=campo3.value;
hospedagem3= campo18.value;
valorvista3= campo33.value;
entrada3= campo48.value; 
} else {
valor3="";
hospedagem3="";
valorvista3="";
entrada3="";
}
if(campo4.checked==true) {
valor4=campo4.value;
hospedagem4= campo19.value;
valorvista4= campo34.value;
entrada4= campo49.value; 
} else {
valor4="";
hospedagem4="";
valorvista4="";
entrada4="";
}
if(campo5.checked==true) {
valor5=campo5.value;
hospedagem5= campo20.value;
valorvista5= campo35.value;
entrada5= campo50.value; 
} else {
valor5="";
hospedagem5="";
valorvista5="";
entrada5="";
}
if(campo6.checked==true) {
valor6=campo6.value;
hospedagem6= campo21.value;
valorvista6= campo36.value;
entrada6= campo51.value; 
} else {
valor6="";
hospedagem6="";
valorvista6="";
entrada6="";
}
}

/* aqui é criado: um, dois e tres, e feito um calculo para soma */
soma1 = valor1*2/2;
soma2 = valor2*2/2;
soma3 = valor3*2/2;
soma4 = valor4*2/2;
soma5 = valor5*2/2;
soma6 = valor6*2/2;
soma7 = valor7*2/2;
soma8 = valor8*2/2;
soma9 = valor9*2/2;
soma10= valor10*2/2;
soma11 = valor11*2/2;
soma12 = valor12*2/2;
soma13 = valor13*2/2;
soma14 = valor14*2/2;

/* aqui é passado para o input os valores checados */
if(soma1=="" && soma2=="" && soma3=="" && soma4=="" && soma5=="" && soma6=="" && soma7=="" && soma8=="" && soma9=="" && soma10=="" && soma11=="" && soma12=="" && soma13=="" && soma14=="" && soma15=="") {
document.form.total_valor.value="";
} else {
document.form.total_valor.value=soma1+soma2+soma3+soma4+soma5+soma6+soma7+soma8+soma9+soma10+soma11+soma12+soma13+soma14+soma15;
}
if(soma16=="" && soma17=="" && soma18=="" && soma19=="" && soma20=="" && soma21=="" && soma22=="" && soma23=="" && soma24=="" && soma25=="" && soma26=="" && soma27=="" && soma28=="" && soma29=="" && soma30=="") {
document.form.total_hospedagem.value="";
} else {
document.form.total_hospedagem.value=soma16+soma17+soma18+soma19+soma20+soma21+soma22+soma23+soma24+soma25+soma26+soma27+soma28+soma29+soma30;
}
if(soma31=="" && soma32=="" && soma33=="" && soma34=="" && soma35=="" && soma36=="" && soma37=="" && soma38=="" && soma39=="" && soma40=="" && soma41=="" && soma42=="" && soma43=="" && soma44=="" && soma45=="") {
document.form.total_valor_vista.value="";
} else {
document.form.total_valor_vista.value=soma31+soma32+soma33+soma34+soma35+soma36+soma37+soma38+soma39+soma40+soma41+soma42+soma43+soma44+soma45;
}
if(soma46=="" && soma47=="" && soma48=="" && soma49=="" && soma50=="" && soma51=="" && soma52=="" && soma53=="" && soma54=="" && soma55=="" && soma56=="" && soma57=="" && soma58=="" && soma59=="" && soma60=="") {
document.form.total_entrada.value="";
} else {
document.form.total_entrada.value=soma46+soma47+soma48+soma49+soma50+soma51+soma52+soma53+soma54+soma55+soma56+soma57+soma58+soma59+soma60;
}

}

   </script>  
   </head>  
   <body>  
       <form action="" method="post">
	<label>Nome: <select name="precos"><option value="">--</option></br>		
   <?php  
       include 'function.php';
       echo montaSelect();	
   ?>  
           </select></label></br>
        </br>
           <label>Valor: <input name="valor" id="numero1" type="text" disabled="disabled" size="6" value="" /></label> 
           <label>Entrada + 3x s/ juros: <input type="text" id="numero2" name="entrada" disabled="disabled" size="6" value="" /></label>
           <label>Hospedagem(mensal): <input name="hospedagem" id="numero3" type="text" disabled="disabled" size="6" value="" /></label>
           <label>Valor à vista(8% desc.): <input type="text" id="numero4" name="valor_a_vista" disabled="disabled" size="6" value="" /></label></br>
       </form>
	Opcionais <br><br>
	<form name="form">
         <input type=checkbox name="check1" value="330" onClick="checar()">Agenda de Eventos<br>
         <input type=checkbox name="check2" value="150" onClick="checar()">Área Restrita<br>
         <input type=checkbox name="check3" value="480" onClick="checar()">Banco de Arquivos<br>
         <input type=checkbox name="check4" value="810" onClick="checar()">Cadastro<br>
         <input type=checkbox name="check5" value="90" onClick="checar()">Contador de Visitas<br>
         <input type=checkbox name="check6" value="330" onClick="checar()">Destaques na Home<br>
         <input type=checkbox name="check7" value="210" onClick="checar()">Galeria de Fotos (por categoria)<br>
         Total Valor <input type="text" id="numero5" name="total_valor" size="6" value="">   
	  Total Entrada + 3x s/ juros <input type="text" name="total_entrada" size="6" value="">
         Total Hospedagem(mensal) <input type="text" id="numero6" name="total_hospedagem" size="6" value="">   
         Total Valor à vista(8% desc.) <input type="text" name="total_valor_vista" size="6" value="">   
	  </br>
	  </br>
		<p id="resultado_total"></p>
		<p id="resultado_total_mensal"></p>			
         <input type=hidden name="hidden1" value="5.50">
         <input type=hidden name="hidden2" value="5.00">
         <input type=hidden name="hidden3" value="5.00">
         <input type=hidden name="hidden4" value="10.00">		  
         </form> 

	  <input type="button" value="Simulação com Opcionais" onclick="somar_total(), somar_total_mensal()"/>


       <div id="test"></div>  
   </body>  
   </html>  

Compartilhar este post


Link para o post
Compartilhar em outros sites

o parseInt() remove os decimais do numero.

use parseFloat()

 

e PARE de duplicar tópicos pelo fórum.

Este é o terceiro aviso. No próximo, seus posts serão moderados, e você não será capaz de criar tópicos por um tempo, de acordo com as regras do fórum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo bem william eu postei errado mesmo o topico, tentei exclui o outro topico como o moderador tinha me pedido mas não consegui.

 

funcionou usando o parseFloat, valeu

 

deixa eu pergunta outra coisa, você sabe se tem como não aparecer NaN quando não seleciona nenhum valor, e aperta o botão, se tem como aparecer em branco??

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei exclui o outro topico como o moderador tinha me pedido mas não consegui.

apenas aguarde que algum moderador irá fazer isso. Membros não possuem esse tipo de permissão mesmo.

 

 

funcionou usando o parseFloat, valeu

okay

 

deixa eu pergunta outra coisa, você sabe se tem como não aparecer NaN quando não seleciona nenhum valor, e aperta o botão, se tem como aparecer em branco??

sim, apenas garanta que a lógica esteja correta.

NaN quer dizer Not a Number

 

se você somar numeros com letras ou com vazio, o resultado é um não número.

Na hora de fazer as contas, passando todos os valores pelo parseFloat(), isso não ocorrerá.

 

Estude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas aqui no caso, tem alguns produtos que o valor é zero mesmo.

 

Por exemplo o checkbox Banner em Flash tem o valor de hospegagem 0

 

Quando eu clico no botão para somar as hospedagens do site mais os opcionais que é quando ele pega o valor do checkbox, ele retorna o NaN

 

Ai quando seleciona outro checkbox que tem o valor de hospedagem diferente de 0 ele soma normalmente.

 

entendeu?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites
use o Responder Azul respondery.png

ou a 'Resposta Rápida'.

 

 

então deixe o value="0", como zero 0 e não como vazio value=""

 

ai você não terá erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O value ja esta como 0.00 e tentei só 0, mas nenhum funcionou.

 

Quando seleciono o checkbox, ele não retorna o 0, fica em branco, mas se coloca qualquer outro valor como por exemplo 1, ele retorna normal e faz a soma.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em todos os lugares que você atribui vazio:

document.form.total_valor.value="";

atribua 0

 

além disso, considere usar a forma padrão getElementById()

 

leia:

http://wbruno.com.br/blog/2011/03/31/como-debugar-javascript-firefox-erros-comuns/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou.

 

Muito obrigado

 

William deixa eu tirar outra duvida, nos campos texto eles estão mostrando só uma casa antes da virgula, tem como mostrar as duas??

 

Nos inputs eles estão com as duas casas depois da virgula.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei cara, tem que debugar a fundo o teu código.

 

faça as melhorias que sugeri, levando em conta o console de erros.

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.