首页 > 解决方案 > 为什么我的输出是 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。

数学奇才和编程天才,帮我解决这个问题!!

标签: javascripthtmlexcelmath

解决方案


我没有在 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>


推荐阅读