结果得到NaN错误

Getting NaN error as the result

本文关键字:错误 NaN 结果      更新时间:2023-09-26

我的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);
}

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

首先,JavaScript不是Java;)

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

myArray = [10];

将仅在数组的第一个索引中设置值CCD_ 7。

然后,当您提示用户输入数字时,这些数字将被解释为字符串。因此,在使用它之前,最好先将其转换为一个数字。铸造:

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

现在我们来谈谈你的问题,由于total没有初始化,第一个做作将是

undefined += n;

这将给出CCD_ 9。

所以在使用之前只需初始化total

var total = 0;

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

var total = 0;

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

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()