javascript - 为什么我的输出是 NaN?在 excel 上,程序输出一个有限的数字。调用所有数学奇才
问题描述
我正在用 JavaScript 和 HTMl 编写一个方程计算器,但是当我在方程中输入一些数字时,屏幕上的输出显示为 NaN,即使在 Microsoft Excel 上它会输出一个数字。为什么是这样?顺便说一句,我的方程适用于虚数。方程是这样的。
let MGErIn = document.getElementById('MGErIn');
let MGaIn = document.getElementById('MGaIn');
let MGFreqIn = document.getElementByID('MGFreqIn');
function WL3outcalc(){
return 1000/25.4*1000*2*Math.PI/(Math.sqrt(Math.pow((2*Math.PI*parseFloat(MGFreqIn.value)*Math.pow(10,9)*Math.sqrt(parseFloat(MGErIn.value))/299792458),2)-Math.pow((Math.PI/(parseFloat(MGaIn.value)*25.4/1000)),2)))
我知道等式很长,对此感到抱歉。
例如,当我为 MGerIn 输入 1 时,我为 MGaIn 输入 0.266,我为 MGFreqIn 输入 35 我的网站输出 NaN,但在 excel 上它输出 435.8 。
excel上使用的等式写在下面。
=IFERROR(1000/25.4*1000*2*PI()/(SQRT((2*PI()*A17*10^9*SQRT(D17)/299792458)^2-(PI()/(F17*25.4/1000))^2)),"Cutoff")
正如你所看到的,我们的方程是相同的减去它的语法,但我的 excel 程序输出 435.8 但在我的网站上它输出 NaN。
数学奇才和编程天才,帮我解决这个问题!!
解决方案
我没有在 excel 中尝试过这个,但 JS 似乎对我来说工作得很好。我添加了一个按钮来返回结果,您可以在字段更新时让它自动运行。不知道你的 html 是什么样的,所以这只是一个例子。当我添加 toFixed(2) 时,它返回 436.01086504866197 或 426.01。如果它对您不起作用,也许还有其他您未共享的代码导致了问题?我添加了 RobG 关于 1e9 的注释。
<html>
<body>
<input id="MGErIn" value="1">
<input id="MGaIn" value="0.266">
<input id="MGFreqIn" value="35">
<button onclick="WL3outcalc()">Submit</button>
<h1>Result: </h1>
<p id="answer"></p>
<script>
let MGErIn = document.getElementById('MGErIn');
let MGaIn = document.getElementById('MGaIn');
let MGFreqIn = document.getElementById('MGFreqIn');
function WL3outcalc() {
var answer = 1000 / 25.4 * 1000 * 2 * Math.PI / (Math.sqrt(Math.pow((2 * Math.PI * parseFloat(MGFreqIn.value) * 1e9 * Math.sqrt(parseFloat(MGErIn.value)) / 299792458), 2) - Math.pow((Math.PI / (parseFloat(MGaIn.value) * 25.4 / 1000)), 2)));
document.getElementById("answer").innerHTML = answer.toFixed(2);
}
</script>
</body>
</html>
推荐阅读
- visual-studio-code - VS Code 无法识别 TI C2000 编译器
- c++ - 在我的 cmake 项目中将 freetype2 编译为依赖项
- java - 为什么将子类输入为其父级定义的 TreeMap 时会出现错误?
- qemu - 如果寄存器状态相同,指令的执行顺序是否重要?
- android - 我应该如何实现我的 AsyncTask 类?
- python - 错误:从 jupyter notebook 运行函数时,“列表”对象不可调用
- tensorflow - 构建多模态 LSTM
- java - 我正在尝试解决 Dijkstra 算法的最短路径。我知道这是不对的,但我应该怎么做才能让它发挥作用?
- angular - 为什么我的变量被认为超出范围?
- database - 经典 ASP/ADO/SQL - 表单在页面加载时提交到数据库,而不是在提交时