Выходные данные JavaScript возвращают NaN - PullRequest
0 голосов
/ 17 декабря 2018

Я использую 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));
  }
});
});

1 Ответ

0 голосов
/ 17 декабря 2018

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...