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