我使用此代码计算总和:http://jsfiddle.net/QmTNZ/2/
我想修改它,当没有有效数量时显示0或者它是空的而不是“NaN”
我还希望将Sum格式化为逗号后只有2个数字。
帮助(我是jquery的初学者)。
答案 0 :(得分:3)
在循环中,您可以检查NaN并将其替换为零:
if(isNaN(sum)) sum = 0;
对于四舍五入,请使用此函数:
function roundNumber(num, dec) {
var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
return result;
}
即,
sum = sum.roundNumber(sum, 2)
答案 1 :(得分:1)
您可以使用isNaN
功能检查数字是否实际上是一个数字:
if(isNaN(sum)) {
//Show 0
}
else {
//Show the value
}
要将总和四舍五入到小数点后两位,您可以执行以下操作:
Math.round(sum * 100) / 100;
这是updated fiddle,展示了它如何运作。
答案 2 :(得分:1)
$("tr.sum").each(function() {
var $qnt = $(this).find(".qty");
var $price = $(this).find("td").eq(1);
console.log($qnt + " | " + $price);
var q = $qnt.val();
if (isNaN($qnt.val()) || $qnt.val() == '') q = 0;
var sum = parseFloat($price.text()) * parseFloat(q);
$(this).find("td").eq(2).text(sum.toFixed(2));
$overall += sum;
});
答案 3 :(得分:1)
要格式化总和以使两个数字改变:
$(this).find("td").eq(2).text(sum);
为:
$(this).find("td").eq(2).text(sum.toFixed(2));
然后添加此
if(isNaN($qnt.val()) || $qnt.val() == "")
$qnt.val(0);
如果没有值,则将数量设置为零