2017-06-14 33 views
-4

和表格中列我有一個計算表中的所有列值的腳本,但現在的劇本只得到充分一些,不計算小數,所以如果我有:使用Javascript - 與小數

COLUMN1 ----- - 列2

一些文字----- 10.2

其它文本------ 3.4

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

我只有33而不是34。 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

我更新了我的答案,請現在檢查。刪除toFixed並嘗試。 –

+0

好吧,現在它工作:)但我有新的問題,例如,在8行有數字3.8,所以3.8 * 8 = 30,4,但腳本給我奇怪30.400000000000002,爲什麼我會得到這個結果? – user3180931

1

使用parseFloat而不是parseInt。