从数字的Javascript公式端口
我试图从数字(Mac OS 10)到JavaScript的端口公式,原来的公式是这样的:
(1-(1+(C37÷100)÷C39)^ – C45)÷((C37÷100)÷C39)
我写了这个:
var calcValueOne = (1 - (1 + (yield/100) / coupon_frequency) Math.sqrt() - coupons_until_maturity) / ( (yield/100) / coupon_frequency);
其中yield
= C37, coupon_frequency
= C39, coupons_until_maturity
= C45
我收到以下错误:
SyntaxError:意外的标识符“math”。 预期')'结束复合expression式。
我的math是不热和调换这个Javascript是被certificate对我来说是一个巨大的挑战,任何人都可以提出一个解决这个问题吗?
编辑
@Musa好心地添加了一个响应,但它返回的数字不是我所期望的,所以我想我会展开值,看看是否有帮助。
yield (C37) == 9.89
coupon_frequency (C39) == 4.00
coupons_until_maturity (C45) == 15.00
我期待的数字是12.41
但我越来越-607.1703544847592
JavaScript现在看起来像这样:
var calcValueOne = (1 - Math.sqrt(1 + (yield/100) / coupon_frequency) - coupons_until_maturity) / ( (yield/100) / coupon_frequency);
同样为了清楚起见,这是原始(excel /数字)公式:
^符号是指数函数而不是平方根,所以使用Math.pow
来计算它
var yield = 9.89; var coupon_frequency= 4.00; var coupons_until_maturity = 15.00 var calcValueOne = (1 - Math.pow((1 + (yield/100) / coupon_frequency), - coupons_until_maturity)) / ( (yield/100) / coupon_frequency); document.body.innerHTML = calcValueOne;