Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera estou tentando fazer um calculo, mas quando o valor unitário é acima de "800,00" o cálculo não é realizado apresenta "NaN", por exemplo 1.500,00 x 2 . segue função:
function calcula_vlr(param){
var mult =document.getElementById("vlr_unitario").value;
valor = mult.replace(',','.');
var vlr_total = param.value*valor;
document.getElementById("vlr_total").value = vlr_total;
}
[]sObrigado, deu certo Valeu.
Veja:
'1,2'.replace(',', '.'); //1.2
'1,2,3'.replace(',', '.'); //1.2.3
'1.2.3,4,5'.replace(',', '.'); //1.2.3.4.5
No JavaScript o . -nesse contexto de sintaxe [de primitivas numéricas] da linguagem- é usado como separador decimal.Mais de um separador decimal pra um número não faz sentido, e logo só 1.2 é um número válido/bem representado:
Number('1.2'); //1.2
Number('1.2.3'); //NaN
Number('1.2.3.4.5'); //NaN
*NaN é um acrônimo de "Not a Number" (i.e "não é um número").
Você converte mult pra uma string representando um número inteiro (e.g valor).
Ao usar esse valor em uma operação matemática, o JS tenta automaticamente converter ele -de String- pra um Number e o NaN indica que essa conversão é malsucedida (i.e múltiplos separadores decimais pra um só número).
Sua função de conversão (de mult pra valor) poderia ser:
//...