javascript中的错误计算

javascript中的错误计算,javascript,gridview,Javascript,Gridview,我有一张桌子在下面。。但是在javascript中得到错误的计算 <script> function getPrice(tRate, tMaking, tHandeling, tPrice, tVat, tQuantity, tTotal) { var obj_tRate = document.getElementById(tRate) var obj_tMaking = document.getElem

我有一张桌子在下面。。但是在javascript中得到错误的计算

     <script>
         function getPrice(tRate, tMaking, tHandeling, tPrice, tVat, tQuantity, tTotal) {
             var obj_tRate = document.getElementById(tRate)
             var obj_tMaking = document.getElementById(tMaking)
             var obj_tHandeling = document.getElementById(tHandeling)
             var obj_tPrice = document.getElementById(tPrice)
             var obj_tVat = document.getElementById(tVat)
             var obj_tTotal = document.getElementById(tTotal)
             var obj_tQuantity = document.getElementById(tQuantity)
             if (obj_tRate.value != "" && obj_tMaking.value != "" && obj_tHandeling.value != "") {
                 obj_tPrice.value = parseFloat(obj_tRate.value) + parseFloat(obj_tMaking.value) + parseFloat(obj_tHandeling.value);
                 console.log(obj_tPrice.value)
                 obj_tVat.value = parseFloat(obj_tPrice.value * (1 / 100));
                 console.log(obj_tVat.value)
                 obj_tTotal.value = parseFloat(obj_tVat.value + (obj_tPrice.value * obj_tQuantity.value));
                 console.log(obj_tTotal.value)
             }
             else {
                 obj_tPrice.value = "";
             }
         }

</script>

</head>
<body>
    <table>
        <tr>
            <td>
                        <input name="grdView$ctl08$txtWaight_F" type="text" id="grdView_ctl08_txtWaight_F" class="classWaight" style="width:60px;" />
                    </td><td>
                        <input name="grdView$ctl08$txtQuantity_F" type="text" maxlength="20" id="grdView_ctl08_txtQuantity_F" class="classQuantity" onchange="javascript:return getPrice('grdView_ctl08_txtRate_F','grdView_ctl08_txtMaking_F','grdView_ctl08_txtHandeling_F','grdView_ctl08_txtPrice_F','grdView_ctl08_txtvat_F','grdView_ctl08_txtQuantity_F','grdView_ctl08_txtTotal_F');" style="width:60px;" />
                    </td><td>
                        <input name="grdView$ctl08$txtRate_F" type="text" maxlength="8" id="grdView_ctl08_txtRate_F" class="classRate" onchange="javascript:return getPrice('grdView_ctl08_txtRate_F','grdView_ctl08_txtMaking_F','grdView_ctl08_txtHandeling_F','grdView_ctl08_txtPrice_F','grdView_ctl08_txtvat_F','grdView_ctl08_txtQuantity_F','grdView_ctl08_txtTotal_F');" style="width:60px;" />
                    </td><td>
                        <input name="grdView$ctl08$txtMaking_F" type="text" id="grdView_ctl08_txtMaking_F" class="classMaking" onchange="javascript:return getPrice('grdView_ctl08_txtRate_F','grdView_ctl08_txtMaking_F','grdView_ctl08_txtHandeling_F','grdView_ctl08_txtPrice_F','grdView_ctl08_txtvat_F','grdView_ctl08_txtQuantity_F','grdView_ctl08_txtTotal_F');" style="width:60px;" />
                    </td><td>
                        <input name="grdView$ctl08$txtHandeling_F" type="text" id="grdView_ctl08_txtHandeling_F" class="classHandling" onchange="javascript:return getPrice('grdView_ctl08_txtRate_F','grdView_ctl08_txtMaking_F','grdView_ctl08_txtHandeling_F','grdView_ctl08_txtPrice_F','grdView_ctl08_txtvat_F','grdView_ctl08_txtQuantity_F','grdView_ctl08_txtTotal_F');" style="width:60px;" />
                    </td><td>
                        <input name="grdView$ctl08$txtPrice_F" type="text" id="grdView_ctl08_txtPrice_F" class="classPrice" style="width:60px;" />
                    </td><td>
                        <input name="grdView$ctl08$txtvat_F" type="text" id="grdView_ctl08_txtvat_F" class="classVat" style="width:60px;" />
                    </td><td>
                        <input name="grdView$ctl08$txtTotal_F" type="text" id="grdView_ctl08_txtTotal_F" class="classTotal" style="width:100px;" />
                    </td><td>
                        <input name="grdView$ctl08$txtSerial_F" type="text" id="grdView_ctl08_txtSerial_F" class="classSerial" />
                    </td>
        </tr>
    </table>
</body>


函数getPrice(tRate、tMaking、tHandeling、tPrice、tVat、tQuantity、tTotal){
var obj_tRate=document.getElementById(tRate)
var obj_tMaking=document.getElementById(tMaking)
var obj_tHandeling=document.getElementById(tHandeling)
var obj_tPrice=document.getElementById(tPrice)
var obj_tVat=document.getElementById(tVat)
var obj_tTotal=document.getElementById(tTotal)
var obj_tQuantity=document.getElementById(tQuantity)
if(obj_tRate.value!=“”&&obj_tMaking.value!=“”&&obj_tHandeling.value!=“”){
obj_tPrice.value=parseFloat(obj_tRate.value)+parseFloat(obj_tMaking.value)+parseFloat(obj_tHandeling.value);
console.log(obj_tPrice.value)
obj_tVat.value=parseFloat(obj_tPrice.value*(1/100));
控制台日志(目标值)
obj_ttottal.value=parseFloat(obj_tVat.value+(obj_tPrice.value*obj_tQuantity.value));
控制台日志(对象总计值)
}
否则{
obj_tPrice.value=“”;
}
}

对操作数而不是计算结果使用
parseFloat

例如,替换

obj_tTotal.value = parseFloat(obj_tVat.value + (obj_tPrice.value * obj_tQuantity.value));

当你添加一个字符串和一个数字时,就像你所做的那样,你要做一个字符串连接

比如说

"1000" + "5" * "100"
给予

那是

"1000500"

此时,调用
parseFloat

为时已晚,您的意思是“应该增值税+(价格*数量)”吗?假设增值税是总价值的一小部分(通常是计算出来的),我想你需要:数量*(价格+增值税税率*价格),谢谢E.Anderson。。数量(价格+增值税)谢谢。。。解释得很好。
"1000" + 500
"1000500"