Pregunta

 var total = 0;
        $(".amount").each(function() {
            var value = $(this).val();
            value = (value.length < 1) ? 0 : value;
            var tmp = parseFloat(value).toFixed(2);
            total += tmp;
        });
        $(".total").text(total);

Estoy intentando recorrer algunos cuadros de texto y resumir sus valores. Esto produce una cadena desagradable. ¿¿Qué me estoy perdiendo?? si pongo 8 en el primer cuadro de texto, el texto total termina como " 08.000.000.000.00 " ;. ¿Qué estoy haciendo mal? Me gustaría formatear como moneda, pero si no, al menos solo un número de dos decimales. ¿Algún indicador?

Gracias ~ ck en San Diego

¿Fue útil?

Solución

.toFixed convierte el objeto de un Número en una Cadena.

Deje los valores completos en su lugar y solo convierta usando .toFixed al final

$(".total").text(total.toFixed(2));

Alternativamente, convierta la cadena de nuevo a un número.

total = total + + tmp;

Otros consejos

Solo para su información, hay un excelente complemento de agregación matemática para jQuery: jQuery Calculation

El uso de ese complemento también puede resolver indirectamente su problema.

Su uso reduciría su script a:

$('.total').text($('.amount').sum());

Está convirtiendo el parseFloat en una cadena y luego lo agrega al total. Solo agregue .toFixed (2) a la línea final, una vez que se hayan agregado las cosas.

var total = 0;
$(".amount").each(function() {
    var value = $(this).val();
    value = (value.length < 1) ? 0 : value;
    var tmp = parseFloat(value);
    total += tmp;
});
$(".total").text(total).toFixed(2);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top