Jump to content

Archived

This topic is now archived and is closed to further replies.

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

×

Important Information

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