2

10 進数を足し合わせようとしていますが、変数を警告するfinalnumberとゼロになります。変数numberは 10 進数です。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します。
  • finalnumberで宣言しないでください。外側のスコープvarで を隠してしまうからです。finalnumber
于 2012-05-30T13:41:43.433 に答える
1

var関数内の の前にキーワードをドロップするだけですfinalnumber。これで、varその名前とスコープの下に新しい変数を定義します。したがって、基本的には の 2 つのバージョンがfinalnumberあり、ローカル バージョン (グローバル バージョンではなく関数内のバージョン) に追加するだけです。

一方、10進数で作業しているため、に変更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。この変数は常に数値であるため、変換する必要はありません。

于 2012-05-30T13:41:10.980 に答える
0

追加行を次のように変更します

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