Javascript价格计算错误

时间:2014-10-31 00:43:32

标签: javascript html syntax e-commerce cart

折扣计算不输出。

(折扣应该从总计减去)

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 click here

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">

1 个答案:

答案 0 :(得分:0)

句点运算符的优先级高于数学运算符,因此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相同。