我正在尝试创建我在Excel中工作的这个等式的JavaScript版本:
Excel版本:
10000*(1+0.06)^30+6000*(((1+0.06)^30-1)/0.06)
计算出531784.029
JavaScript版本:
console.log(10000*(1+0.06)^30+6000*(((1+0.06)^30-1)/0.06));
返回:2789622
或者如果我尝试使用Math.pow()
:
console.log(10000*(Math.pow(1+.06),30)+6000*(Math.pow((1+.06),30-1)/.06));
返回:841838.7898974773
大约6个小时后我完全被难倒了。如何重新创建该Excel计算并获得相同的数字?
答案 0 :(得分:3)
对于与excel中相同的行为,你只是在js中对Math.pow
函数有错误的运算符和错误参数,它应该是这样的:
console.log(10000*(Math.pow(1+.06,30))+6000*((Math.pow(1+.06,30)-1)/0.06));
javascript中的^
运算符与excel中的运算符不同,在js中它表示按位xor运算,而在excel中它表示与Math.pow
相同。
javascript中的Math.pow
函数有两个参数,例如,要在excel 1.06^30
中执行相同的操作,您将在javascript中执行Math.pow(1.06,30)
。
顺便说一句,也许只是你为这个例子添加的内容,但是你不需要添加1+.06
就可以写1.06
:
console.log(10000*(Math.pow(1.06,30))+6000*((Math.pow(1.06,30)-1)/0.06));