结果得到 NaN 错误

Getting NaN error as the result

我的 JavaScript 代码中似乎出现了 NaN 错误。

我对此很陌生,希望得到任何帮助。

通过给总变量赋值解决

有几个问题:

  • 您应该使用 parseFloat 而不是字符串。
  • 您应该初始化 total(这是导致 nan 的原因)
  • 您应该正确初始化数组。

function tax() {
    var price = new Array(10);
    var quant = new Array(10);
    var taxam = 18;
    var total = 0;
    for(i=0;i<10;i++) {
        quant[i] = parseFloat(prompt("Insert Quantity: "));
        price[i] = parseFloat(prompt("Insert Price: "));
    }
    for(i=0;i<10;i++) {
        total += price[i] * quant[i];
    }
    total = total * (taxam / 100);
    alert(total);
}

您必须将字符串变量解析为数字:

function tax() {

var price = [10];
var quant = [10];
var taxam = 18;
var total = 0;

 for(i=0;i<10;i++) {

    quant[i] = Number(prompt("Insert Quantity: "));

    price[i] = Number(prompt("Insert Price: "));

    }

for(i=0;i<10;i++) {

total += price[i] * quant[i];

 }

total = total * (taxam / 100);

alert(total);


}
tax()

我猜想用这个 var price = [10] 你试图创建一个包含 10 个数字的数组,但这不是它在 Javascript 中的工作方式 var price = [10] 会给你一个数组10 在第 0 个位置。我要做的唯一其他调整是 make var price = [1,2,3,4,5,6,7,8,9,10] 以实际实现您最初设定的目标

首先,Java脚本不是Java ;)

您似乎试图用长度为 10 的数组来初始化。这在 Java 中有效,但在 Java 脚本中,数组是动态的,并且写入:

myArray = [10];

只会在数组的第一个索引中设置值 10

然后,当您提示用户输入数字时,数字将被解释为字符串。 所以最好在使用它之前将它转换为一个数字。 投射它:

var value = '10000';
valueAsInt = parseFloat('10000',10);
//or simply 
valueAsInt = +value;

现在我们来解决你的问题,因为total没有初始化,第一个是

undefined += n;

这将给出 NaN.

所以在使用之前初始化 total :

var total = 0;

你必须先初始化 total 变量,因为它最初是未定义的

var total = 0;