Javascript 添加十进制数的jquery

Javascript 添加十进制数的jquery,javascript,jquery,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[]

我试图将十进制数相加,但当我提醒变量
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);

});​

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

另一方面,在处理十进制数时,应将
parseInt
更改为
parseFloat
(参见@gdoron的答案)

旁注:您可以将
parseInt()
放在
finalnumber
的函数中。此变量始终是一个数值,因此无需对其进行转换。

更改此值:

var finalnumber = parseInt(number)+parseInt(finalnumber);  
为此:

finalnumber = finalnumber + parseFloat(number); 
或:

  • parseInt
    无法保存十进制值。改用
    parseFloat
  • 不要用
    var
    声明
    finalnumber
    ,因为它会在外部范围中隐藏
    finalnumber

如下更改添加行

finalnumber = finalnumber + parseFloat(number);

我不确定这是否是您的问题,但如果您查看的是十进制数字,您可能需要parseFloat。输入字段中到底是什么?您是否尝试了“.”和“,”以及小数分隔符?
finalnumber += parseFloat(number); 
finalnumber = finalnumber + parseFloat(number);