2

我正在尝试将十进制数字相加,但是当我提醒变量时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);

});​
4

3 回答 3

8

改变这个:

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

对此:

finalnumber = finalnumber + parseFloat(number); 

或者:

finalnumber += parseFloat(number); 
  • parseInt 不能保存十进制值。改为使用parseFloat
  • 不要声明finalnumberwith var,因为它隐藏finalnumber在外部范围内。
于 2012-05-30T13:41:43.433 回答
1

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

另一方面,您应该在使用十进制数字时更改parseIntparseFloat(参见@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. 这个变量总是一个数值,所以不需要转换它。

于 2012-05-30T13:41:10.980 回答
0

更改添加行如下

finalnumber = finalnumber + parseFloat(number);
于 2012-05-30T13:42:22.810 回答