我的数学似乎都是正确的,但我返回的是 NaN。
Javascript:
// This section calculates how much the user will have to spend until the average age of life expectancy.
function updatespending() {
var age = parseFloat(document.forms[0].CurrentAge.value);
var value = parseFloat(document.forms[0].NetWorth.value);
if(document.forms[0].sex.value == "male")
{var yearsleft = Math.round (76 - age);}
else if(document.forms[0].sex.value == "female")
{var yearsleft = 81 - age;}
document.forms[0].AnnualSpending.value = Math.round (value / years left);
HTML 代码:
<table width="433" border="1" align="center">
<tr>
<td class="liquidate">How much will you have to live off of if you liquidate all of your assets?</td>
</tr>
<tr>
<td width="381" height="68"><table width="100%" border="0" cellpadding="4" cellspacing="4">
<tr>
<td align="right">Sex:</td>
<td>
<input type="radio" name="sex" value="male">Male<br>
<input type="radio" name="sex" value="female">Female
</td>
</tr>
<tr>
<td align="right">Current Age:</td>
<td><input type="text" onchange="updatespending()" onkeyup="numericOnly(this)" maxlength="2" size="3" value="0" name="CurrentAge" /></td>
</tr>
<tr>
<td align="right" >Annual Spending Available:</td>
<td>$<input name="AnnualSpending" disabled="disabled" readonly /></td>
</tr>
</table></td>
</tr>
</table>
当然,这一切都包含在一种形式中。如果我删除 == 并放置 = ,它将返回第一个 if 语句所说的内容。其他任何值都会返回 NaN。任何帮助将不胜感激。
最佳答案
在你的最后一行你有:
document.forms[0].AnnualSpending.value = Math.round (value / years left);
不应该是:
document.forms[0].AnnualSpending.value = Math.round (value / yearsleft);
注意yearsLeft变量。
关于Javascript 数学返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24794699/