-1

私はjavascriptでとても苦労しています。関数を使用して簡単な給与プログラムを作成することになっています。何が間違っているのかわかりません。payrateまた、 andtaxrateを 10 進形式に変更する必要があります。それをどのようにコードに入れますか?私のコードは次のようになります。

<html>
  <body bgcolor="#81DAF5">
  <head>
    <title>Chapter 4 Assignment 1</title>
  </head>
  <body>
    <script type="text/javascript">
      var hoursworked = window.prompt("How many hours worked?", "");
      var payrate = window.prompt("What is the pay rate?", "");
      var taxrate = window.prompt("What is the tax rate?", "");
      var netpay
      parseFloat(payrate).toFixed(2);
      parseFloat(taxrate).toFixed(2);
      function calculatepay()
      {
        var grosspay= hoursworked * payrate;
        var taxamount= (grosspay * taxrate) / 100;
        var netpay= grosspay - taxamount;
        return netpay;
      }

      document.write("<h1><b>Hours Worked: " +hoursworked+ "<br></h1></b>");
      document.write("<h1><b>Hourly payrate: " +payrate+ "<br></h1></b>");
      document.write("<h1><b>Tax rate applied: " +taxrate+ "<br></h1></b>");
      document.write("<h1><b>Net Pay = " +calculatepay+ "<br></h1></b>");
    </script>
  </body>
</html>
4

4 に答える 4

0

更新していただきありがとうございます。parseFloat(payrate).toFixed(2)確かに格納された値を浮動小数点数に変換しているように見えますが、代わりに答えを文字列として格納します

また、おそらく結果を別の変数に代入するかpayrate、いずれにしても元に戻す必要があります。そうしないと、浮動小数点数/文字列が失われます。

試す:

payrate = parseFloat(payrate).toFixed(2);
taxrate = parseFloat(taxrate).toFixed(2);

そして、あなたのcalculatepay()関数で:

// neat trick at http://stackoverflow.com/a/5661399/1091386
// allows you to use a string as a float in addition/subtraction
// apparently not necessary with multiplication but I thought I'd leave it in

var taxamount = hoursworked * +(payrate);

最後に、最後に を呼び出すことを忘れないでください。そうしないとcalculatepay()()単に関数が返されます。

于 2013-06-24T03:11:25.887 に答える
0

parseFloat(payrate).toFixedString(2); を使用する場合 実際の値は変更されません。

于 2013-06-24T03:11:45.663 に答える