Jump to content
Sfork16

Transformar numero inteiro em numero real

Recommended Posts

Olá tenho um script em Java script que faz a quantidade X valor e aparece o total e o total geral automaticamente

mais o campo TOTAL só aceita valores inteiros se eu coloco um valor real no campo VALOR como por exemplo 20,00

o campo TOTAL aparece o ERRO "NAN" gostaria de saber se alguém pode me ajudar pra esse campo aparecer numero real

não sei se tem que mudar algo na função que faz a conta, lembrando que esses dados são cadastrados em um banco de dados

e no banco já está configurado para receber valores reais... ALGUÉM PODE ME AJUDAR ?

 

 

Quantidade Valor Total

 

2 50 100

5 10 50

3 100 300

1 250 250

2 20,00 'NAN'

 

(manual) (manual) (Automático)

 

 

Minha função >>>

function id( el ){
        //return document.getElementById( el );
        return $( el );
}
function calcTotal( un01, qnt01 )
{
        return un01 * qnt01;
}
function getElementParent(event){
    return event.srcElement.parentNode.parentNode.getAttribute('id');
}
function getValorUnitario(elParent){
    return $('#'+elParent+' .class_unit input').val();
}
function getQuantidade(elParent){
    return $('#'+elParent+' .class_quant input').val();
}
function setFieldTotal(elParent, valueUnit, valueQuant){
    id('#'+elParent+' .class_total input').val(calcTotal( valueUnit , valueQuant));
    setTotalFinal();
}
function setTotalFinal(){
    
    var total = 0;
    $('#table-shop tr .class_total input').each(function(){
        if(this.value != ''){
        var valor = this.value;
        total += parseInt(valor);
        }
    });
	$('#total .value_total').val(total);
}
$(document).ready(function(){
        id('#table-shop tr .class_unit').keyup(function(event)
        {
            var elemenPai = getElementParent(event);
            var valueUnit = getValorUnitario(elemenPai);
            var valueQuant = getQuantidade(elemenPai);

            setFieldTotal(elemenPai, valueUnit , valueQuant);
        });      
       
        id('#table-shop tr .class_quant').keyup(function(event)
        {
            var elemenPai = getElementParent(event);
            var valueUnit = getValorUnitario(elemenPai);
            var valueQuant = getQuantidade(elemenPai);

            setFieldTotal(elemenPai, valueUnit , valueQuant);
        });
});

Meu formulário >>>

<table border="0" id="table-shop">    	
<form name="form1" method="GET" action="cadchamado.php">  
<tr id="line1">
        	<td>
            <input name="material01_chamado" id="material01_chamado" size="30" type="text" value="<?php echo $material01_chamado ?>" /></td>            
            <td class="class_unit"><input name="preco01_chamado" id="preco01_chamado" type="text" value="<?php echo $preco01_chamado ?>" /></td>            
            <td class="class_quant"><input name="qtd01_chamado" id="qtd01_chamado" type="text" value="<?php echo $qtd01_chamado ?>" /></td>            
            <td class="class_total"><input name="total01_chamado" id="total01_chamado" type="text" value="<?php echo $total01_chamado ?>" readonly="readonly" /></td>
        </tr>
        <tr id="line2">
        	<td><input name="material02_chamado" id="material02_chamado" size="30" type="text" value="<?php echo $material02_chamado ?>" /></td>            
            <td  class="class_unit"><input name="preco02_chamado" id="preco02_chamado" type="text" value="<?php echo $preco02_chamado ?>" /></td>            
            <td class="class_quant"><input name="qtd02_chamado" id="qtd02_chamado" type="text" value="<?php echo $qtd02_chamado ?>" /></td>            
            <td class="class_total"><input name="total02_chamado" id="total02_chamado" type="text" value="<?php echo $total02_chamado ?>" readonly="readonly" /></td>
        </tr>
        <tr id="line3">
        	<td><input name="material03_chamado" id="material03_chamado" size="30" type="text" value="<?php echo $material03_chamado ?>" /></td>
            <td  class="class_unit"><input name="preco03_chamado" id="preco03_chamado" type="text" value="<?php echo $preco03_chamado ?>" /></td>
            <td class="class_quant"><input name="qtd03_chamado" id="qtd03_chamado" type="text" value="<?php echo $qtd03_chamado ?>" /></td>
            <td class="class_total"><input name="total03_chamado" id="total03_chamado" type="text" value="<?php echo $total03_chamado ?>" readonly="readonly" /></td>
        </tr>
        <tr>
            <td colspan="4">        
            <div id="total"><input class="value_total" name="total_geral_chamado" id="total_geral_chamado" type="text" value="<?php echo $total_geral_chamado ?>" readonly></input> </div>          
            </td>
        <tr>
 </form>
 </table>

EAI ALGUÉM PODE ME AJUDAR ???

DESDE JÁ MUITO OBRIGADO !!!

Share this post


Link to post
Share on other sites

Então vai ter que "converter" (na realidade substituir a "," informada no HTML por "." antes de salvar no banco e vice-versa).

 

Até onde vai meu conhecimento sobre Javascript, você poderia fazer das seguintes formas:

1- Utilizar regex p/ substituição.

2- Converter para float e usar toLocaleString() no objeto. Ex:

 

 

var a = 20.00;
a.toLocaleString(window.navigator.language, {style:"currency", currency:"BRL", minimumFractionDigits:2});

 

Mas leia esse post também: http://marcoscaceres.github.io/jsi18n

Se for aplicável, deixe o usuário escolher a moeda ou faça uma query p/ algum serviço que forneça o "currency" e o "locale" baseado na localização do usuário.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.