jquery添加十进制数

时间:2012-05-30 13:38:42

标签: javascript jquery

我正在尝试将十进制数字加在一起,但是当我警告变量finalnumber时,我得到零。变量number是十进制数。我如何解决这个问题,以便变量finalnumber是所有number的总和?

var finalnumber = 0;

$('#chosen-keyword-container').find('.keyword-row').each(function() {
    var number = $(this).find('td:last').find('input[name=bid-price[]]').val();

    var finalnumber = parseInt(number) + parseInt(finalnumber);

});​

3 个答案:

答案 0 :(得分:8)

改变这个:

var finalnumber = parseInt(number)+parseInt(finalnumber);  

对此:

finalnumber = finalnumber + parseFloat(number); 

或者:

finalnumber += parseFloat(number); 
  • parseInt 无法保存小数值。请改用parseFloat
  • 请勿finalnumber声明var,因为它会隐藏外部范围内的finalnumber

答案 1 :(得分:1)

只需将var关键字放在finalnumber前面的函数中。使用var,您可以在该名称和范围下定义新变量。所以基本上你有两个版本的finalnumber并且只添加到本地版本(函数内部而不是全局版本)。

另一方面,当你使用十进制数字时,你应该将parseInt更改为parseFloat(参见@gdoron的回答)。

$('#chosen-keyword-container').find('.keyword-row').each(function() {
  var number = $(this).find('td:last').find('input[name=bid-price[]]').val();

  finalnumber = parseFloat(number) + finalnumber;  
});

在旁注中:您可以将parseInt()放在finalnumber的函数内。此变量始终是数字值,因此无需转换它。

答案 2 :(得分:0)

更改添加行如下

finalnumber = finalnumber + parseFloat(number);