jquery计算乘积之和x数量

时间:2011-07-11 14:59:55

标签: jquery

我使用此代码计算总和:http://jsfiddle.net/QmTNZ/2/

我想修改它,当没有有效数量时显示0或者它是空的而不是“NaN”

我还希望将Sum格式化为逗号后只有2个数字。

帮助(我是jquery的初学者)。

4 个答案:

答案 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)

演示:http://jsfiddle.net/gN3Te/

$("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);

如果没有值,则将数量设置为零