为什么我收到NaN错误?

时间:2017-02-16 15:40:35

标签: javascript nan

我有一个程序,它从我收到的编码挑战中读取一个特定的文本文件,它接受数字并将其放入一个数组中,以便我解决二次方程式。当我去显示我的答案时,我不断在我的所有值上得到NaN错误,我无法找到我搞砸的地方。

CODE

var lines = data[0].split("/n");
var numQuads = lines[0];
for (var i = 1; i < numQuads; i++){
  var fields = lines[i].split(",");
  var a = fields[0];
  var b = fields[1];
  var c = fields[2];
}
a = parseInt();
b = parseInt();
c = parseInt();
var discr = (b * b) - (4 * (a * c));
var sqrDiscr = Math.sqrt(discr);
var x = (-b + sqrDiscr) / (2*a);
var y = (-b - sqrDiscr) / (2*a);
var outputL = "The quadratic equation with coefficients A = " + a + " B = " + b + " C= " + c + " has no real roots!";
var outputW = "The quadratic equation with coefficients A = " + a + " B = " + b + " C= " + c + " has roots x = " + x + " and x = " + y;
if (discr >= 0) {
  output += outputW + "\n";
}
else {
  output += outputL + "\n\n";
}

5 个答案:

答案 0 :(得分:0)

您没有为parseInt函数提供参数。它的工作原理如下:parseInt("2")。您可能希望使用parseFloat而不是parseInt

另一个评论:您的data数组未定义。

答案 1 :(得分:0)

你在parseInt()

中插入了String
a = parseInt("67");
b = parseInt("3");
c = parseInt("2");

答案 2 :(得分:0)

应该是:

a = parseInt(a);
b = parseInt(b);
c = parseInt(c);

答案 3 :(得分:0)

问题是你没有用你的parse int解析任何东西。 查看有关parseInt的一些文档的here。 无论如何,它在你的代码中应该是这样的:

a = parseInt(a, 10);
b = parseInt(b, 10);
c = parseInt(c, 10);
d = parseInt(d, 10);
编辑:根据@ d3l的建议,我查看了parseInt参数,根据this问题,parseInt函数可能会有一些意外的行为而不添加radix参数。因此我将其添加到我的解决方案中。

假设您正在解析整数,我们可以指定10作为基数。

答案 4 :(得分:0)

问题是var lines = data[0].split("/n"); 我用错了字符。应该是var lines = data[0].split("\n");