Math.pow() 出来错了

Math.pow() coming out wrong

我正在尝试创建我在 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));

Returns: 2789622

或者如果我尝试使用 Math.pow():

console.log(10000*(Math.pow(1+.06),30)+6000*(Math.pow((1+.06),30-1)/.06));

Returns: 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中表示按位异或运算,而在excel中表示相同作为 Math.pow.

javascript 中的 Math.pow 函数有两个参数,因此例如要进行与 excel 1.06^30 中相同的操作,您可以执行 Math.pow(1.06,30)在 javascript.

顺便说一下,也许只是你为示例添加的东西,但你不需要添加 1+.06你可以只写 1.06:

 console.log(10000*(Math.pow(1.06,30))+6000*((Math.pow(1.06,30)-1)/0.06));