在 for 循环中,前者是使用 sun += a[i]进行累加的,sun的初始默认值为 undefined。当undefined与数值相加时,即 undefined+1 为 NaN
在后面 for 循环中,sun = a[0] + a[1] + a[2] + a[3] 每次把4个数值重新赋值给sun,所以后面是好的
解决这个问题,只需要定义sun时给一个值,如 var sun=0即可解决结果是NaN的问题
total=total+interp(x*f,y*f)*a中调用了interp,interp定义如下:function interp(a,b,x){
return a*(1-x)+b*x
}
这个函数有三个参数,其中x没有传值,值为undefined,x参与到了运算,返回结果为NaN。
NAN:Not a number你script里面这句a=document.form.INVOICE_TYPE.value可是在下面的代码里面没有看到有name属性为form的表单,也没有看到有name属性为INVOICE_TYPE的控件,a的值肯定是空的
下面也是
a=Number(document.form.GROSS_PROFIT.value)
b=Number(document.form.INCOME_AMOUNT.value)
根本就没有form,document.form从何而来