我正在尝试将公式从数字(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: Unexpected identifier 'Math'. Expected ')' to end a compound expression.
我的数学不太热,将其转换为 Javascript 对我来说是一个巨大的挑战,有人可以发布一个解决方案吗?
编辑
@Musa 善意地添加了一个响应,但它返回的数字不是我所期望的,所以我想我应该扩展这些值,看看是否有帮助。
产量 (C37) == 9.89
优惠券频率 (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;
关于Javascript 公式从数字移植,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26499893/