结果得到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);
}
我想用这个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()
相关文章:
- jquery中出现NaN错误.已经尝试过ParseInt,但仍然不起作用
- 我的jquery中出现NaN错误
- 为什么分配给“NaN”或“未定义”会导致类型错误
- Map/Reduce给我NaN或错误的结果(由于null)
- JavaScript NaN错误,输入文本显示为NaN
- new Date返回NaN或从服务器日期()开始的错误时间
- NaN错误和数字保持不变
- 如何检查NaN错误的值
- jquery日期分析器错误获取NaN错误
- Javascript-将字符串转换为Int会返回NaN错误
- NaN 错误代码有什么问题
- 在带有时间戳的日期之间计算时出现 NaN JavaScript 错误
- 为什么此函数返回 Nan 错误
- javascript中的NaN错误,但在调试时结果正确
- 错误:<路径>属性 d=“MNaN,NaNA5,5 0 1,1 NaN,NaNL0,0Z”的值无效
- 为什么从数组中获取值时会出现 NaN(不是数字)错误
- 仅正则表达式 Nan 错误号
- 错误:
属性宽度=“NaN” 6d3.v3.min.js:1 的值无效: 属性 x=“NaN” - Javascript求和字段错误NaN
- 错误nan插入带有循环的img