Tenho a seguinte lógica para calcular a Quantidade x Preço:
var qtd = document.getElementById("txtQTD___" + indexChk).value.replace('.','').replace(',', '.');
var vlUnit = document.getElementById("txtVLUNIT___" + indexChk).value;
var vlTotalItem = parseFloat(vlUnit.replace('.','').replace(',', '.')) * parseFloat(qtd);
Mas quando a quantidade (qtd) é acima de 1 milhão, ela não funciona corretamente.
Exemplo:
qtd = 2.172.524,00
vlUnit = 0,3193
resultado esperado = 693.686,91
resultado que aparece = 693,69
@Marcella,
O replace só altera o primeiro caractere que ele acha, por isso aparece o resultado diferente.
Crie uma função que faça a conversão.
Ficaria assim:
var qtd = convertStringFloat(document.getElementById("txtQTD___" + indexChk).value);
var vlUnit = convertStringFloat(document.getElementById("txtVLUNIT___" + indexChk).value);
var vlTotalItem = parseFloat(vlUnit) * parseFloat(qtd);
function convertStringFloat(valor){
if (valor.indexOf(',') == -1) {
} else {
valor = String(valor).split(".").join("").replace(",",".");
}
valor = parseFloat(valor);
return valor;
}