Cálculo de Valor Total

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;
}