2017-06-14 32 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。