Javascript价格计算错误

Javascript Price Calculation Errors

本文关键字:错误 计算 Javascript      更新时间:2023-09-26

折扣计算不输出

(折扣应该从总额中减去)

Html

input name="discount" id="discount" type="text">   <button  id="record_button" onclick="recordToFilename();" href="javascript:void(0);" title="Record" > Submit Discount </button>  
     <b id="discount">Discount</b>

Javascript

 function recordTodiscount() {
var input = document.getElementById('discount'),
    discount = input.value;     

检查jsfiddle点击这里

document.getElementById('total').innerHTML = "<strong>SubTotal</strong>: $" + salesTotal.toFixed(2); 
document.getElementById('taxtotal').innerHTML = "<strong>Tax </strong>: $" + salesTotal*0.13.toFixed(2);
document.getElementById('grandtotal').innerHTML = "<strong>Grand Total </strong>: $" + salesTotal*0.14 + salesTotal. toFixed(2);//grandtotal and tax total come out the same 
document.getElementById('discount').innerHTML = "<strong>Discount </strong>: $" + salesTotal*0.14 + salesTotal-discount.toFixed(2); //grandtotal and tax total come out the same 


<input name="discount" id="discount" type="number">

周期运算符的优先级高于数学运算符,因此在加法之前将应用toFixed方法。由于这使第二个操作数成为字符串,+运算符将进行字符串串联,而不是加法。

toFixed调用之前,需要使用括号进行计算:

(salesTotal * 0.13).toFixed(2)
(salesTotal * 0.14 + salesTotal).toFixed(2)
(salesTotal * 0.14 + salesTotal - discount).toFixed(2)

计算税款时使用0.13,计算总额时使用0.14,它们可能应该相同。

不需要将总额和税款相加,您只需在乘以的常数上加一,即salesTotal * 0.14 + salesTotalsalesTotal * 1.14相同。