【问题标题】:JavaScript: output "NaN"- Can't find the mistakeJavaScript:输出“NaN” - 找不到错误
【发布时间】:2018-05-10 01:18:33
【问题描述】:

这应该是一个使用 JavaScript 的二次方程求根程序。我编写了代码,但显然有一个错误,因为当我单击“计算”时,结果是“x1:NaN;x2:NaN”。有人可以告诉我错误吗?

function result() {
  var a = document.getElementById('a');
  var b = document.getElementById('b');
  var c = document.getElementById('c');

  var d = Math.sqrt(b*b-4*a*c);
  var divide = (2 * a);
  var x1 = (-b + d)/divide;
  var x2 = (-b - d)/divide;

  document.write("x1: " + x1 + "<br/>");
  document.write("x2: " + x2 + "<br/>");
}

【问题讨论】:

  • 您的代码应发布在此处。 Stackoverflow 旨在成为问题和答案的存储库,因此内容应该永远在这里可用;您的链接网站可能会更改(如果您解决了问题,可能会更改)。
  • 请发布代码而不是链接。此外,谷歌搜索“javascript math nan”将this 作为#1 结果。
  • 1: 最好直接在这里复制你的javascript,不鼓励链接。 2: 您的 abc 变量是对 HTML 元素的引用,而不是输入的值。使用.value 属性来获取实际的输入内容。例如:a = Number(document.getElementById('a').value)
  • 此外,您的代码没有提供负判别式,因此只要根复杂,您就会得到 NaN。

标签: javascript nan equation quadratic


【解决方案1】:

您正在使用

分配输入元素
var a = document.getElementById('a');

但您需要输入的值。

var a = document.getElementById('a').value;

如果您需要Number,您可以使用unary plus +

var a = +document.getElementById('a').value;
//      ^

【讨论】:

    猜你喜欢
    • 2013-06-15
    • 2017-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 2014-04-30
    • 1970-01-01
    • 2017-01-17
    相关资源
    最近更新 更多