2017-06-14 2 views
-4

との合計表の列Iは、テーブル内のすべての列の値を計算するスクリプトを持っていますが、私が持っているので、もし今のスクリプトは、小数の計算ではない、唯一の完全な番号を取得します。Javascriptを - 小数

カラム1を----- - COLUMN2

いくつかのテキスト----- 10.2

他のテキスト------ 3.4

textt ------------- 20.9

私はちょうど34ではない33を取得しています。 5

マイコード:

var tds = document.getElementById('vinyle').getElementsByTagName('td'); 
var sum = 0; 
for (var i = 0; i < tds.length; i ++) { 
    if (tds[i].className == 'count-me') { 
     sum += isNaN(tds[i].innerHTML) ? 0 : parseInt(tds[i].innerHTML); 
    } 
} 

document.getElementById('vinyle').innerHTML += '<tr class="sum"><td>' + sum + '</td></tr>'; 

小数点で計算を開始し、これを編集する方法は?

+2

'Int'がで' parseInt'おそらく何の略でしょうか? _floats_のために同様の方法が存在するかもしれません...? – CBroe

+0

'parseFloat(tds [i] .innerHTML).toFixed(2)を試してください ' –

答えて

2

使用parseFloat()

var tds = document.getElementById('vinyle').getElementsByTagName('td'); 
       var sum = 0; 
       for(var i = 0; i < tds.length; i ++) { 
        if(tds[i].className == 'count-me') { 
         sum += isNaN(tds[i].innerHTML) ? 0 : parseFloat(tds[i].innerHTML); 
        } 
       } 


       document.getElementById('vinyle').innerHTML += '<tr class="sum"><td>' + sum.toFixed(2) + '</td></tr>'; 

var tds= ['36.2','56.2']; 
 

 
       var sum = 0; 
 
       for(var i = 0; i < tds.length; i ++) { 
 

 
         sum += isNaN(tds[i]) ? 0 : parseFloat(tds[i]); 
 
        
 
       } 
 

 

 
       document.getElementById('vinyle').innerHTML += '<tr class="sum"><td>' + sum.toFixed(2) + '</td></tr>';
<div id="vinyle"></div>

+0

このコードでは、36.2と56.2の結果は036.2056.20ですので、何かが間違っています:/ – user3180931

+0

私の答えが更新されました。取り除いてから試してみてください。 –

+0

さて、それは動作します:)しかし、私は新しい問題を抱えている、例えば、8行であり数3.8、そう3.8 * 8 = 30,4があるが、スクリプトは私に奇妙な30.400000000000002を与え、なぜ私はこの結果を得るのですか? – user3180931

1

代わりのparseIntの使用parseFloatは。

関連する問題