我使用此代码来获取一列的总数,但它没有正确计算
预期产量:13,500.00 目前输出:13
我认为问题在于数字的格式,但我不知道如何处理它。
<table id="sum_table" width="300" border="1">
<tr class="titlerow">
<td>Col 1</td>
</tr>
<tr>
<td class="amount">6,000.00</td>
</tr>
<tr>
<td class="amount">1,500.00</td>
</tr>
<tr>
<td class="amount">6,000.00</td>
</tr>
</table>
<div id="total"></div>
<script>
var theTotal = 0;
$(".amount").each(function () {
theTotal += parseInt($(this).html());
});
$("#total").html(theTotal);
</script>
答案 0 :(得分:2)
您需要从字符串中替换,
以正确解析字符串。
theTotal += Number($(this).html().replace(/,/g,''));
// or remove all character except digit and dot
theTotal += Number($(this).html().replace(/[^\d.]/g,''));
更新:稍后通过将总数转换为字符串来转换为货币格式。
$("#total").html(theTotal.toString().replace(/\d(?=(?:\d{3})+$)/g,'$&,'))
// or with 2 decimal point
$("#total").html(theTotal.toFixed(2).replace(/\d(?=(?:\d{3})+\.)/g,'$&,'))