Почему мой вывод NaN?В Excel программа выводит конечное число.Вызов всех математиков - PullRequest
0 голосов
/ 20 сентября 2019

Я пишу калькулятор уравнений с 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)))

Я знаю, что уравнение очень длинное, извините за это.

Например, когда я ввожу 1 для MGErIn, я ввожу 0,266 для MGaIn и 35 для MGFreqIn Myвеб-сайт выводит 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.

Мастера математики и гении кодирования, помогите мне с этой проблемой !!

1 Ответ

0 голосов
/ 20 сентября 2019

Я не пробовал это в Excel, но JS, кажется, отлично работает для меня.Я добавил кнопку для возврата результатов, вместо этого вы могли бы автоматически запускать ее при обновлении полей.Не знаю, как выглядел ваш HTML, так что это всего лишь пример.Его возвращение 436.01086504866197 или 426.01, когда я добавил toFixed (2).Если это не работает для вас, возможно, был другой код, которым вы не поделились, который вызывает проблему?Я добавил примечание Роба о 1е9.

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...