Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal o que faço para calcular valores com virgula a formula abaixo so calcula valores quebrado se colocar ponto, se colocar virgula é ignorado, o que faço??
<script type="text/javascript">
function Calc(){
ValorUm = parseFloat(document.getElementById('valortotal').value);
ValorDois = parseFloat(document.getElementById('juros').value);
ValorTres = parseFloat(document.getElementById('multa').value);
ValorQuatro = parseFloat(document.getElementById('desconto').value);
document.getElementById('vlrreceber').value = (ValorUm+(/*Juros*/(ValorUm/100)*ValorDois)+((ValorUm/100)*ValorTres)-((ValorUm/100)*ValorQuatro)).toFixed(2);
var val = document.getElementById("vlrreceber").value;
document.getElementById("vlrreceber").value = val.replace(".", ",");
}
</script>Se o usuário entrar os valores com vírgula, substitua a vírgula por ponto e o cálculo será possível.
No final mostre o resultado substituindo o ponto pela vírgula (como você já fez).
Observe:
<script type="text/javascript">
function Calc(){
ValorUm = parseFloat(document.getElementById('valortotal').value.replace(",", "."), 10);
ValorDois = parseFloat(document.getElementById('juros').value.replace(",", "."), 10);
ValorTres = parseFloat(document.getElementById('multa').value.replace(",", "."), 10);
ValorQuatro = parseFloat(document.getElementById('desconto').value.replace(",", "."), 10);
document.getElementById('vlrreceber').value = (ValorUm+(/*Juros*/(ValorUm/100)*ValorDois)+((ValorUm/100)*ValorTres)-((ValorUm/100)*ValorQuatro)).toFixed(2);
//console.log( ValorUm*( 1+(ValorDois+ValorTres-ValorQuatro)/100 ).toFixed(2) ); // forma simplificada de cálculo do valor a mostrar.
var val = document.getElementById("vlrreceber").value;
document.getElementById("vlrreceber").value = val.replace(".", ",");
}
</script>
Nota: Vale até misturar valores com ponto e com vírgula.
Não se calcula, precisa deixar com ponto, depois do calculo você mostra o resultado com virgula, dando replace, é um valor float, calcula com ponto!