Не уверен, что не так с моим простым кодом - PullRequest
0 голосов
/ 02 июля 2019

Я не уверен, что сделал неправильно в моем простом калькуляторе налога с продаж. Когда я нажимаю «Отправить», я хочу, чтобы в долларах была показана стоимость товара плюс налог с продаж, но вместо этого я вижу total tip $functionround(){[native code]}.

  //calculation
  var total = (itemCost * salesTax + itemCost);

  total = Math.round

Ответы [ 3 ]

1 голос
/ 02 июля 2019
total = Math.round

В строке выше вы присваиваете значение функции Math.round переменной total.Вместо этого вы, вероятно, захотите присвоить значение , возвращаемое функцией Math.round вашей общей переменной следующим образом:

total = Math.round(total)
0 голосов
/ 02 июля 2019

Вы должны рассмотреть эти коды на calculation. Вот простой налоговый калькулятор, и он хорошо работает:

    function fmtPrice(value) {
                result="$"+Math.floor(value)+".";
                var cents=100*(value-Math.floor(value))+0.5;
                result += Math.floor(cents/10);
                result += Math.floor(cents%10);
                return result;
                }
                function compute() {
                var unformatted_tax = (document.forms[0].cost.value)*(document.forms[0].tax.value);
                document.forms[0].unformatted_tax.value=unformatted_tax;
                var formatted_tax = fmtPrice(unformatted_tax);
                document.forms[0].formatted_tax.value=formatted_tax;
                var cost3= eval( document.forms[0].cost.value );
                cost3 += eval( (document.forms[0].cost.value)*(document.forms[0].tax.value) );
                var total_cost = fmtPrice(cost3);
                document.forms[0].total_cost.value=total_cost;
                }
                function resetIt() {
                document.forms[0].cost.value="19.95"; // cost of product
                document.forms[0].tax.value=".06"; // tax value 
                document.forms[0].unformatted_tax.value="";
                document.forms[0].formatted_tax.value="";
                document.forms[0].total_cost.value="";
                }
<CENTER>
<FORM>
<TABLE BORDER=2 WIDTH=300 CELLPADDING=3>
<TR>
<TD align="center"><FONT SIZE=+1><STRONG>Cost</STRONG></FONT>
<TD align="center"><FONT SIZE=+1><STRONG>Tax</STRONG></FONT>
</TR>
<TR>
<TD align="center"><INPUT TYPE="text" NAME="cost" VALUE="19.95" SIZE=10>
<TD align="center"><INPUT TYPE="text" NAME="tax" VALUE=".06" SIZE=10>
</TR>
</TABLE>
<BR>
<TABLE BORDER=1 WIDTH=600 CELLPADDING=3>
<TR>
<TD align="center"><FONT SIZE=+1><STRONG>Unformatted Tax</STRONG></FONT>
<TD align="center"><FONT SIZE=+1><STRONG>Formatted Tax</STRONG></FONT>
<TD align="center"><FONT SIZE=+1><STRONG>TOTAL COST</STRONG></FONT>
</TR>
<TR>
<TD align="center"><INPUT TYPE="text" NAME="unformatted_tax" SIZE=15>
<TD align="center"><INPUT TYPE="text" NAME="formatted_tax" SIZE=15>
<TD align="center"><INPUT TYPE="text" NAME="total_cost" SIZE=15>
</TR>
</TABLE>
<BR>
<TABLE BORDER=0 WIDTH=400 CELLPADDING=5>
<TR>
<TD align="center"><INPUT TYPE="reset"  VALUE="RESET" onClick="resetIt()">
<TD align="center"><INPUT TYPE="button" VALUE="COMPUTE" onclick="compute()">
</TR>
</TABLE>
</CENTER>
0 голосов
/ 02 июля 2019

Как уже отмечалось, вам необходимо вернуть общее значение Math.round - но вам также необходимо проанализировать значения в числах), а затем вы также должны помнить, что налог с продаж является процентом - поэтому его нужно разделить на 100.

Я изменил вашу логику на

а) разобрать значения входов в числа с помощью parseInt ()

б) решить проблему math.round ()

в) получить значение налога с продаж, умножив стоимость товара на процент налога с продаж ... itemCost * (salesTax / 100)

d) добавить значение налога с продаж к стоимости товара ... стоимость товара + (itemCost * (salesTax / 100)) ...

//Function
function calculateTip() {
  var itemCost = parseInt(document.getElementById("itemCost").value);
  var salesTax = parseInt(document.getElementById("salesTax").value);
  //enter values window
  if (itemCost === "" || salesTax == "") {
    window.alert("Please enter the values!");
    return;
  }
  //calculation
  var total = Math.round(itemCost + (itemCost * salesTax/100));

  //display amount
  document.getElementById("totalTip").style.display = "block";
  document.getElementById("amount").innerHTML = total;
}
//Hide Tip Amount and call our function with a button
document.getElementById("totalTip").style.display = "none";

document.getElementById("submit").onclick = function() {
  calculateTip();
};
</head>

<body id="color">
  <div class="container" id="contain">
    <div class="text-center">
      <h1>Sales Tax Calculator</h1>
      <p> Amount Before Tax?</p>
      $ <input id="itemCost" type="text" placeholder="item cost">
      <p>Sales Tax Percentage?</p>
      <input id="salesTax" type="text" placeholder="sales tax percent"><br><br>

      <button type="submit" id="submit">submit</button>
    </div>
    <div class="container" ID="totalTip">
      <div class="text-center">
        <p>Total Tip</p>
        <sup>$</sup><span id="amount">0.00</span>
      </div>
    </div>
  </div>
  <script type="text/javascript" src="javascript.js"></script>
</body>
...