Math.pow()出现错误



我正在尝试创建这个公式的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));

最新更新