总和使用逗号分隔数字的错误

时间:2011-07-12 10:14:08

标签: jquery

我想改进此代码http://jsfiddle.net/QmTNZ/30/以使用逗号分隔价格代替点

因为我们可以看到当我们使用例如1 x 375,5时我得到375总和而不是375,5

我的代码:

function ca(){
    var $overall = 0;

    $("tr.sum").each(function() {

        var $qnt = $(this).find(".qty");
        var $price = $(this).find("td").eq(1);

        console.log($qnt + " | " + $price);

        var sum = parseFloat($price.text()) * parseFloat($qnt.val());

        if(isNaN(sum)) {
            sum = 0;
        }
        $(this).find("td").eq(2).text(Math.round(sum * 100) / 100);

        $overall += sum;

    });

    $("#total").text($overall);
}

$(function() {

    ca();
    $('input.qty').bind('change keyup',function(){ca();});

});

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

在你的html中,使用“,”和“。”

JavaScript使用“。”对于浮点数。 “,”用于枚举。更好地将价格改为xx.yy而不是xx,yy。

例如,这不会起作用

var a = 12,1;
var b = 12.4, c = 0;
c = a + b;

您也可以更改此行(在大多数情况下,对象往往是整数:))

var sum = parseFloat($price.text()) * parseFloat($qnt.val());

var sum = parseFloat($price.text()) * parseFloat( parseInt ($qnt.val() ) );

答案 2 :(得分:0)

在分析价格之前将,更改为.,并使用.toFixed(2)强制在结果中输入2位小数。

http://jsfiddle.net/gaby/QmTNZ/38/

的工作演示