我有一个简单的JavaScript程序,将摄氏温度转换为fahreinheit,反之亦然。但是一个函数不起作用并返回NaN。
<script type="text/javascript">
function CtoF() {
c = parseInt(document.getElementById("celsiusTemp").value);
fah = c * (9 / 5) + 32;
document.getElementById("resC").innerHTML = fah;
}
function FtoC() {
f = parseInt(document.getElementById("celsiusTemp").value);
cel = (f - 32) * (5 / 2);
document.getElementById("resF").innerHTML = cel;
}
</script>
<body>
<form>
<p>Insert celsius temperatur:
<input type="text" id="celsiusTemp" />
<br>
</p>
<p>Insert fahrenheit temperatur:
<input type="text" id="fahreheitTemp" />
<br>
</p>
<input type="button" class="btn btn-success" onClick="CtoF()" Value="Calc Fahrenheit" />
<input type="button" class="btn btn-warning" onClick="FtoC()" Value="Calc Celsius" />
</form>
<br/>
<p>The Result is :
<br/>
<p>Result celsius to fahreinhet:</p><span id="resC"></span>
<p>Result fahreinhet to celsius:</p><span id="resF"></span>
</body>
为什么在计算摄氏度时会得到NaN)
谢谢!
答案 0 :(得分:6)
您可能需要替换:
f = parseInt(document.getElementById("celsiusTemp").value);
使用:
f = parseInt(document.getElementById("fahreheitTemp").value);
如果单击Calc Celsius
按钮,它将尝试从摄氏度字段中获取值。如果该项为空,则parseInt
将返回NaN
:
isNaN(parseInt("")) === true
答案 1 :(得分:2)
因为您的摄氏功能正在读取错误的输入,并且因为您在测试函数时没有输入该输入,所以它是一个空字符串parseInt
变成非数字。