Вывод JavaScript, возвращающий NaN

Я использую App Lab на Code.org, в котором используются команды JavaScript; однако у них есть собственные элементы управления пользовательского интерфейса. Следовательно, код будет содержать такие команды, как onEvent (), setText () и т. д. И т. Д. Все они приемлемы. Я пытаюсь создать код для сферического закона косинусов, но мой вывод для числа - это NaN. Что это значит и как это исправить?

Часть моего кода ниже:

onEvent("outputgoScrn","click",function(){
  setScreen("outputScrn");
  setText("output","The distance between these two locations is " + ((Math.acos((Math.cos(a)*(180/Math.PI))*(Math.cos(b)*(180/Math.PI)) + (Math.sin(a)*(180/Math.PI))*(Math.sin(b)*(180/Math.PI)) + (Math.cos(N)*(180/Math.PI))*(180/Math.PI)))) + " miles along the Great Circle.");
});

onEvent("lat1", "change", function() {
  var choice = getProperty("lat1","value");
  if (choice= = "N") {
    a = 90 - ((getNumber("lat1deg")+(getNumber("lat1min")/60)));
  }
  else if (choice= = "S") {
      a = 90 + (getNumber("lat1deg")+(getNumber("lat1min")/60));
  }
});

onEvent("lat2", "change", function() {
  var choice = getProperty("lat2","value");
  if (choice= = "N") {
    b = 90 - ((getNumber("lat1deg")+(getNumber("lat1min")/60)));
  }
  else if (choice= = "S") {
      b = 90 + (getNumber("lat2deg")+(getNumber("lat2min")/60));
  }
});


onEvent("lon1", "change", function() {
  var choice = getProperty("lon1","value");
onEvent("lon2","change",function() {
  var choice2 = getProperty("lon2","value");
  if (choice= = "E" && choice2= = "E") {
    N = (getText(("lon1deg")+(getText("lon1min")/60))) - (getText(("lon2deg")+(getText("lon2min")/60)));
  }
  else if (choice= = "W" && choice2= = "W") {
    N = getText(("lon1deg")+(getText("lon1min")/60)) - getText(("lon2deg")+(getText("lon2min")/60));
  }
  else if (choice= = "W"&&choice2= = "E") {
    N = getText(("lon1deg")+(getText("lon1min")/60)) + getText(("lon2deg")+(getText("lon2min")/60));
  }
  else if (choice= = "E"&&choice2= = "W") {
     N = getText(("lon1deg")+(getText("lon1min")/60)) + getText(("lon2deg")+(getText("lon2min")/60));
  }
});
});

Свойство NaN представляет собой значение «не числовое». Это свойство указывает, что значение не является допустимым числом. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… Вычисление где-то включало не число, и результат не стал числом.

Nitha 17.12.2018 13:11

Скорее всего, потому что ваше значение в Math.acos() больше 1 или меньше -1. Зарегистрируйте переменную, которую вы получили для (Math.cos(a)*(180/Math.PI))*(Math.cos(b)*(180/Math.PI)∀x∊[-1;1],Math.acos(x)=arccos(x)= the unique y∊[0;π]such thatcos(y)=x из MDN

kevinSpaceyIsKeyserSöze 17.12.2018 13:21
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
376
1

Ответы 1

NaN означает «не число». Похоже, вы пытаетесь выполнять арифметические операции со строками. Вам нужно преобразовать вашу строку в число

var text = '42px';
var integer = parseInt(text, 10);
// returns 42

Для получения дополнительных функций синтаксического анализа вы можете проверить ссылку ниже https://gomakethings.com/converting-strings-to-numbers-with-vanilla-javascript/

Это больше похоже на комментарий, чем на ответ.

kevinSpaceyIsKeyserSöze 17.12.2018 13:25

Другие вопросы по теме