Javascript 为什么我的结果总是显示为未定义?
我为我的一个课程编写了这段代码(请记住这是初学者课程,我们刚刚开始学习elseif)。它应该写下某人的姓名、SSN、工资、时间以及最终的纳税额Javascript 为什么我的结果总是显示为未定义?,javascript,html,Javascript,Html,我为我的一个课程编写了这段代码(请记住这是初学者课程,我们刚刚开始学习elseif)。它应该写下某人的姓名、SSN、工资、时间以及最终的纳税额 <!DOCTYPE html> <html lang="en" <!-- Author: Sidney Stephens Assignment ? - Part ?: Title: ? Date: [[date:%d/%m%Y %H:%M"%S]] Description: ??? --> <head>
<!DOCTYPE html>
<html lang="en"
<!-- Author: Sidney Stephens
Assignment ? - Part ?: Title: ?
Date: [[date:%d/%m%Y %H:%M"%S]]
Description: ???
-->
<head>
<meta charset="UTF-8" <!-- Character Setter -->
<title>CMIS102 » Sidney Stephens » Assignment ? Part ? </title>
<script>
document.write("<h1>Payroll Calculator</h1>")
window.alert("This is the Dynasty Casino Payroll Program.");
sName = window.prompt("Who's payroll?","");
document.write("<p>Name: </p>" + sName);
sSSN = window.prompt("What is their SSN?","");
document.write("<p>SSN: </p>" + sSSN);;
sEntry = window.prompt("Hourly Rate?","0");
var fRate = parseFloat(sEntry);
document.write("<p>Rate: </p>" + fRate);
sEntry = window.prompt("How many hours worked?","0");
var fTime = parseFloat(sEntry);
document.write("<p>Time: </p>" + fTime);
if (fTime > 40)
{
var sDiff = fTime - 40;
var fDiff = parseFloat(sDiff);
document.write("<p>Overtime Worked: </p>" + fDiff);
var sRaw = (fRate * 40) + ((fRate * 1.5) * fDiff);
var fRaw = parseFloat(sRaw);
document.write("<p>Pay Without Taxes: </p>" + fRaw);
if (fRaw <= 1000)
{
var sFinal = fRaw * 0.85;
var fFinal = parseFloat(sFinal);
window.alert("You will recieve $" + fFinal);
document.write("<p>Final Pay: </p>" + fFinal);
}
else if (fRaw > 1000)
{
var sExtra = fRaw - 1000;
var fExtra = parseFloat(sExtra);
var sfinal = (fExtra * 0.75) + (1000 * 0.85);
window.alert(sFinal);
var fFinal = parseFloat(sFinal);
window.alert("You will recieve $" + sFinal);
document.write("<p>Final Pay: </p>" + sFinal);
}
}
else if (fTime <= 40)
{
var sRaw = 40 * fRate;
var fRaw = parseFloat(sRaw);
document.write("<p>Pay Without Taxes: </p>" + fRaw);
if (fRaw <= 1000)
{
var sFinal = fRaw * 0.85;
var fFinal = parseFloat(sFinal);
window.alert("You will recieve $" + fFinal);
document.write("<p>Final Pay: </p>" + fFinal);
}
else if (fRaw > 1000)
{
var sExtra = fRaw - 1000;
var fExtra = parseFloat(sExtra);
var sfinal = ((fExtra * 0.75)) + ((1000 * 0.85));
window.alert(sFinal);
var fFinal = parseFloat(sFinal);
window.alert("You will recieve $" + fFinal);
document.write("<p>Final Pay: </p>" + fFinal);
}
}
</script>
</head>
<body style="color: #000000; background-color: #FFFFFF">
<p>This is the template</p>
</body>
CMIS102»;西德尼·斯蒂芬斯»;分配部分
文件编写(“工资计算器”)
window.alert(“这是王朝赌场工资计划”);
sName=window.prompt(“谁的工资单?”,“”);
文件。写(“名称:”+sName);
sSSN=window.prompt(“他们的SSN是什么?”,“”);
写(“SSN:”+sSSN);;
哨兵=窗口提示(“小时费率?”,“0”);
var fRate=parseFloat(哨兵);
文件。写(“费率:”+fRate);
sEntry=window.prompt(“工作了多少小时?”,“0”);
var fTime=浮动(哨兵);
文件。写(“时间:”+fTime);
如果(fTime>40)
{
var-sDiff=fTime-40;
var fDiff=parseFloat(sDiff);
文件。写(“加班:”+fDiff);
var sRaw=(fRate*40)+(fRate*1.5)*fDiff);
var fRaw=解析浮点(sRaw);
文件。填写(“无税支付:”+fRaw);
如果(fRaw 1000)
{
var sExtra=fRaw-1000;
var fExtra=parseFloat(sExtra);
var sfinal=(fExtra*0.75)+(1000*0.85);
窗口警报(sFinal);
var fFinal=parseFloat(sFinal);
window.alert(“您将收到$”+sFinal);
文件。填写(“最终付款:”+s最终付款);
}
}
否则如果(fTime 1000)
{
var sExtra=fRaw-1000;
var fExtra=parseFloat(sExtra);
var sfinal=((fExtra*0.75))+((1000*0.85));
窗口警报(sFinal);
var fFinal=parseFloat(sFinal);
window.alert(“您将收到$”+fFinal);
文件。填写(“最终付款:”+fFinal);
}
}
这是模板
它对我来说很好,除非sRaw超过1000,然后出于某种原因,它一直在说NaN或undefined。我们还没有深入了解它的吸引力。我们在让算法发挥作用方面取得了很大进展。提前谢谢。您的代码中有一个输入错误
else if (fRaw > 1000)
{
var sExtra = fRaw - 1000;
var fExtra = parseFloat(sExtra);
var sfinal = (fExtra * 0.75) + (1000 * 0.85);//here, change sfinal to sFinal
window.alert(sFinal);
var fFinal = parseFloat(sFinal);
window.alert("You will recieve $" + sFinal);
document.write("<p>Final Pay: </p>" + sFinal);
}
else if(fRaw>1000)
{
var sExtra=fRaw-1000;
var fExtra=parseFloat(sExtra);
var sfinal=(fExtra*0.75)+(1000*0.85);//这里,将sfinal更改为sfinal
窗口警报(sFinal);
var fFinal=parseFloat(sFinal);
window.alert(“您将收到$”+sFinal);
文件。填写(“最终付款:”+s最终付款);
}
找到这个简单的小错误花了很多时间!!你应该学习“打字错误;永远不要让它们发生”的寓意。propmt是丑陋的用户界面<代码>文档。编写在各个方面都很难看。请定义“不起作用”。预期的行为是什么?实际行为是什么?未关闭的元字符集标记可能有问题。。。它肯定是无效的。请检查代码中是否有未关闭的标记。乍一看,它们不是错误的原因,但这些可能是问题的症状。不是最好的和现代的代码,但在什么情况下会出现错误?如果你面对它呢?