我似乎在JavaScript代码中收到了NaN错误。
我对此很陌生,不胜感激任何帮助。
通过给总变量赋值来解决。
答案 0 :(得分:2)
有几个问题:
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);
}
答案 1 :(得分:1)
我猜这个var price = [10]
你试图创建一个包含10个数字的数组,但这不是它在Javascript中工作的方式var price = [1,2,3,4,5,6,7,8,9,10]
会给你一个在第0位有10的数组。我要做的唯一其他调整是让 ;with a as (select * , row_number() over (order by (select 1)) r from @t),
b as (select * , row_number() over (partition by agg,RManager order by r) r1 from a)
select t.RManager,t.Score,t1.Score,t.Agg,t.Rank,t1.Rank
from b t join (select * from b where r1=2 ) t1 on t.Agg=t1.Agg and t.RManager=t1.RManager
where t.r1=1 order by agg desc
实际达到你为初始设定的目的
答案 2 :(得分:0)
首先,JavaScript不是Java;)
您似乎尝试初始化长度为10的数组。这适用于Java,但在Javascript中,数组是动态的并且正在编写:
myArray = [10];
只会在数组的第一个索引中设置值10
。
然后,当您提示用户输入数字时,数字将被解释为字符串。 因此,在使用它之前将它转换为数字会很好。 施展它:
var value = '10000';
valueAsInt = parseFloat('10000',10);
//or simply
valueAsInt = +value;
现在我们遇到了你的问题,因为total
没有初始化,第一次做法将是
undefined += n;
这将给出NaN
。
所以在使用之前只需初始化total
:
var total = 0;
答案 3 :(得分:0)
你必须首先初始化总变量,因为它最初是未定义的
var total = 0;
答案 4 :(得分:-1)
您必须将String变量解析为Number:
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()