我正在尝试创建这个公式的JavaScript版本,我在Excel中使用了这个版本:
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计算并获得相同的数字?
对于与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
函数需要两个参数,因此例如,要进行与excel1.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));