Javascript:为什么会产生难看的字符串???我想要货币

问题描述 投票:6回答:3
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”。我究竟做错了什么?我想将其格式化为货币,但如果不是,则至少应为两个十进制数字。有指针吗?

javascript jquery string-formatting
3个回答
13
投票

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

将全部值保留在原处,仅在最后使用.toFixed进行转换

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

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

total = total + + tmp;

1
投票

仅供参考,有一个出色的jQuery数学汇总插件:jQuery Calculation

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

它的用法会将您的脚本缩小为:

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

0
投票

您正在将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);
© www.soinside.com 2019 - 2024. All rights reserved.