1

这个函数是通过动态表计算借方总数,问题是,它计算了2.6 + 2.1 = 4.00,我希望答案是4.70,但它没有计算到小数点后两位。

function debitvalues() {
    var debittotal = 0;
    var obj = document.getElementsByTagName("input");
    for (var i = 0; i < obj.length; i++) {
        if (obj[i].name == "debit[]") {
            if (obj[i].value > 0) {
                debittotal += parseInt(obj[i].value * 1);
            } else {
                obj[i].value = 0;
                debittotal += parseInt(obj[i].value * 1);
            }
        }
    }
    document.getElementById("debittotal").value = (debittotal * 1).toFixed(2);
    debittotal = 0;
}
4

1 回答 1

5

int当您需要解析到时,您解析到float

parseInt(obj[i].value*1)

parseInt=>parseFloat

parseInt给你一个自然数 - N同时parseFloat给你一个实数 - R

顺便说一句,当您将一个数字乘以一个x时,您会得到相同的 x 数字,所以我认为您的计算器可以跳过它...

parseInt(obj[i].value*1) => parseFloat(obj[i].value)
于 2013-03-02T17:31:02.823 回答