在多个字段中添加数字不会添加小数

时间:2018-02-07 08:44:08

标签: javascript

我试图计算多个字段的值,并将总数放在另一个框中。它适用于整数,但出于某种原因,例如,不会添加7.25或7.50。

我尝试更改tot += parseInt(arr[i].value).toFixed(2);,但这不起作用。任何帮助表示赞赏。



        function findTotal(){
            var arr = document.getElementsByName('monday');
            var tot=0;
            for(var i=0;i<arr.length;i++){
                if(parseInt(arr[i].value))
                    tot += parseInt(arr[i].value);
            }
            document.getElementById('totalHours').value = tot;
        }
&#13;
        Monday : <input onblur="findTotal()" type="text" name="monday" id="monday1"/><br>
        Monday : <input onblur="findTotal()" type="text" name="monday" id="monday2"/><br>
        Monday : <input onblur="findTotal()" type="text" name="monday" id="monday3"/><br>
        Monday : <input onblur="findTotal()" type="text" name="monday" id="monday4"/><br>
        Monday : <input onblur="findTotal()" type="text" name="monday" id="monday5"/><br>
        Monday : <input onblur="findTotal()" type="text" name="monday" id="monday6"/><br>
        
        <br><br>
        Total : <input type="text" name="total" id="totalHours"/>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:4)

parseInt将删除小数部分 你应该使用parseFloat

答案 1 :(得分:1)

用户parseFloat()而不是parseInt(),

function findTotal(){
    var arr = document.getElementsByName('monday');
    var tot=0;
    for(var i=0;i<arr.length;i++){
        if(parseFloat(arr[i].value))
            tot += parseFloat(arr[i].value);
    }
    document.getElementById('totalHours').value = tot;
}

答案 2 :(得分:0)

tot += Number(Number(arr[i].value).toFixed(2))