Javascript函数故障
我在javascript方面遇到了很多麻烦。我应该用这个函数做一个简单的工资支票程序。我不知道我做错了什么。我还必须将Javascript函数故障,javascript,function,Javascript,Function,我在javascript方面遇到了很多麻烦。我应该用这个函数做一个简单的工资支票程序。我不知道我做错了什么。我还必须将payrate和taxrate更改为十进制格式。你怎么把它写成代码?下面是我的代码 <html> <body bgcolor="#81DAF5"> <head> <title>Chapter 4 Assignment 1</title> </head> <body>
payrate
和taxrate
更改为十进制格式。你怎么把它写成代码?下面是我的代码
<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>
第四章作业1
var hoursworked=window.prompt(“工作了多少小时?”,“”);
var payrate=window.prompt(“工资率是多少?”,“”);
var taxrate=window.prompt(“税率是多少?”,“”);
var净支付
浮动工资率。固定工资率(2);
分类浮动(税率)。固定(2);
函数calculatepay()
{
var grosspay=工作小时数*工资率;
var taxamount=(格罗斯佩*税率)/100;
var netpay=总收入-税额;
退回网付;
}
文件。填写(“工作小时数:+hoursworked+”
”;
文件。填写(“小时工资率:“+payrate+”
”;
文件。填写(“适用税率:“+taxrate+”
”;
文件。填写(“净工资=”+calculatepay+“
”;
谢谢您的更新。虽然parseFloat(payrate).toFixed(2)
似乎确实将存储的值转换为float,但它存储的是答案
此外,在任何情况下,您可能都应该将结果分配给另一个变量或返回到payrate
,否则浮点/字符串将丢失
尝试:
然后在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()
,否则在使用
parseFloat(payrate).toFixedString(2);
实际值没有改变。代码中几乎没有问题
payrate=parseFloat(payrate).toFixed(2)代码>
()
来调用函数calculatepay
,以打印结果var hoursworked=window.prompt(“工作了多少小时?”,”);
var payrate=window.prompt(“工资率是多少?”,“”);
var taxrate=window.prompt(“税率是多少?”,“”);
工资率=浮动工资率(工资率)。toFixed(2);
taxrate=parseFloat(taxrate).toFixed(2);
函数calculatepay()
{
var grosspay=工作小时数*工资率;
var taxamount=(格罗斯佩*税率)/100;
var netpay=总收入-税额;
退回网付;
}
var netpay=calculatepay();
文件。填写(“工作小时数:+hoursworked+”
”;
文件。填写(“小时工资率:“+payrate+”
”;
文件。填写(“适用税率:“+taxrate+”
”;
文件。写入(“净支付=“+netpay+”
”;
演示:我已经为您更新了一点脚本。一些小错误。调用calculate pay函数时没有包含大括号,也没有存储应用parseFloat方法的结果 应用括号给出:
document.write("<p>Net Pay = " + calculatepay() + "</p>");
另外,您不需要单独声明每个变量,您可以将它们作为一个组来完成,只需用逗号分隔即可:
var hoursworked = window.prompt("How many hours worked?", ""),
payrate = window.prompt("What is the pay rate?", ""),
payrate = parseFloat(payrate).toFixed(2),
taxrate = window.prompt("What is the tax rate?", ""),
taxrate = parseFloat(taxrate).toFixed(2),
netpay = 0;
以下是一个工作示例-
希望这有帮助在哪里定义了
hours worked
、payrate
和taxrate
?您对返回值做了什么?您遇到了什么问题?程序首先向用户发出提示。说“工作了多少小时,你的工资是多少,税率是多少?”好的,但什么是“不工作”parseFloat
不转换输入,只返回转换后的结果。将其更改为十进制格式的代码是什么?如何修复该函数,使netpay不会在输出时未定义。只需将它们还原为自己的变量,如:Payrate=parseFloat(Payrate).toFixedString(2)噢!非常感谢。我现在看到了。最后,我使用了netpay而不是calculatepay()。@jaramore请查看更新,在这种情况下,您需要将计算值分配给变量netpay
document.write("<p>Net Pay = " + calculatepay() + "</p>");
payrate = parseFloat(payrate).toFixed(2);
taxrate = parseFloat(taxrate).toFixed(2);
var hoursworked = window.prompt("How many hours worked?", ""),
payrate = window.prompt("What is the pay rate?", ""),
payrate = parseFloat(payrate).toFixed(2),
taxrate = window.prompt("What is the tax rate?", ""),
taxrate = parseFloat(taxrate).toFixed(2),
netpay = 0;