使用Javascript:为什么会发生这种生产和丑陋的字符串??? 我想货币([removed]

2019-07-31 05:15发布

 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

Answer 1:

.toFixed从数值到字符串对象转换。

保留完整值的地方,只转换使用.toFixed在最后

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

另外,转换的字符串返回一个数字。

total = total + + tmp;


Answer 2:

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

使用该插件还可以间接地解决您的问题。

它的使用将你的脚本减少:

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


Answer 3:

要转换的parseFloat成一个字符串,然后将它添加到总量。 只添加.toFixed(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);


文章来源: Javascript: why does this produce and ugly string??? I would like currency