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

我正在尝试循环浏览一些文本框并总结它们的价值。这会产生一个讨厌的弦。我想念什么?如果我将8放在第一个文本框中,总文本最终以“ 08.000.000.000.00”。我究竟做错了什么?我想格式化为货币,但如果不是货币,则至少只有两个小数。有指针吗?

谢谢,〜CK在圣地亚哥

有帮助吗?

解决方案

.toFixed将对象从数字转换为字符串。

将完整的值留在适当的位置,仅在最后使用.tofix转换

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

或者,将字符串转换回一个数字。

total = total + + tmp;

其他提示

仅供参考,jQuery有一个出色的数学聚合插件: jQuery计算

使用该插件也可能间接解决您的问题。

用法将使您的脚本减少到:

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

您正在将parsefloat转换为字符串,然后将其添加到Total中。一旦添加了东西,仅将.tofix(2)添加到最后一行。

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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top