2014-09-04 2 views
0

이전에 비슷한 방법으로 코드를 게시 했는데도 여전히 문제가 있습니다. 이번에는 을받습니다. 계산서에 10을 넣고, 판매 세를 7, 팁으로 25을 입력합니다. 나는 자바 스크립트 코딩을 처음 접했고 문자 그대로 이것을 이해하려고 시간을 많이 보냈다. 나는 도움이 필요하다.판매 및 팁 계산기

<html> 
<head> 

<script type="text/javascript"> 
function applyTax(){ 


    var inputAmount = document.getElementById('dollars').value; 
    var salesTax = document.getElementById('tax').value; 
    var tip = document.getElementById('tip').value; 
    var totalAmount = (salesTax/100) + (inputAmount); 
    var tipprcnt = (tip/100) * (inputAmount); 
    var Grandtotal = (inputAmount + (totalAmount*1) + (tipprcnt*1)); 

    //document.getElementById('requestedAmount').innerHTML = tipprcnt; 
    //document.getElementById('requestedTax').innerHTML = totalAmount; 
    document.getElementById('requestedGrand').innerHTML = Grandtotal; 
} 

</script> 

</head> 
<body> 

<h1>Sales Tax + Tip Calculator</h1> 
<p>Type in your price (dollar amount). Click the &quot;Calculate&quot; button to receive your total. 
</p> 
<p> 
    What is the bill amount?: $<input type="text" id="dollars" /> <br> 
    What is the sales tax?:<input type="text" id="tax" />%<br> 
    how much do you want to tip?:<input type="text" id="tip" />% 
    <input type="button" onclick="applyTax();" value="Calculate" /> 

</p> 
</h2>The Grand Total is:</h2> 
<div id="requestedAmount"> </div> 
<div id="requestedTax"> </div> 
<div id="requestedGrand"> </div> 
<p><a href="http://jasonhuang.myweb.usf.edu/lis4365/index.html">Home</a> 
</body> 
</html> 
+0

을 입력 금액에 세금을 곱하는 대신 세금을 추가합니다. – Barmar

+0

@Bijan 그는 문자열에서 숫자로 변환되어'+'가 연결이 아니라 추가 작업을 수행하도록하고 있습니다. 변환 될 필요가있는 것을 제외하고는'inputAmount'입니다. – Barmar

답변

0
function applyTax(){ 
    var inputAmount = parseFloat(document.getElementById('dollars').value); 
    var salesTax = parseFloat(document.getElementById('tax').value); 
    var tip = parseFloat(document.getElementById('tip').value); 
    var taxprcnt = (salesTax/100) * (inputAmount); 
    var tipprcnt = (tip/100) * (inputAmount); 
    var Grandtotal = inputAmount + taxprcnt + tipprcnt; 

    document.getElementById('requestedGrand').innerHTML = Grandtotal.toFixed(2); // Round to 2 decimals 
} 
  1. 당신은 번호 입력을 변환 parseFloat()를 사용해야합니다 parseFloat를 사용합니다.
  2. 입력 금액을 세금 비율로 곱하고이를 추가하지 않아야합니다.
  3. 사람들은 분수 동전을보고 싶지 않으므로 최종 결과를 반올림해야합니다. DEMO

    내가 $ (10) 양, 7 % 세금, 25 %의 팁을 입력

는 총 $ 13.20입니다.

0

모든 입력에 Number(input.value)을 사용하여 문자열 값을 숫자로 변환하십시오. 원하는 경우 또는 parseFloat 대신 Number()을 사용할 수 있습니다. 첫 번째는 정수로 변환되고, 두 번째는 소수점이있는 숫자로 변환됩니다. Btw은

()*1의 overusage을 잊지는 ... 다른 사람에 대한 바로 잡음

귀하의 변수 이름은 혼란,하지만 난 당신이 같은 원 추측 : 당신은

var amountInput = document.getElementById("dollars"); 
var taxInput = document.getElementById("tax"); 
var tipInput = document.getElementById("tip"); 

var amount = Number(amountInput.value); 
var taxPercent = Number(taxInput.value); 
var tipPercent = Number(tipInput.value); 

var grandTotal = Math.round(amount * (100 + taxPercent + tipPercent))/100; 

var grandTotalOutput = document.getElementById("requestedGrand"); 
grandTotalOutput.innerHTML = grandTotal;