来自数字的Javascript公式端口

时间:2014-10-22 03:31:00

标签: javascript excel

我正在尝试将公式从数字(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'。期待')'结束   复合表达。

我的数学不热,将其转换为Javascript对我来说是一个巨大的挑战,任何人都可以发布一个解决方案吗?

修改

@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 /数字)公式:

Original Excel Formula

1 个答案:

答案 0 :(得分:1)

^符号是指数函数而不是平方根,因此使用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;