如何使用JavaScript计算未来价值(FV)

我已经被赋予了一个任务,将一个简单的电子表格转换为一个HTML表单,以便在网站上使用,这将使用JavaScript进行一些计算。 除了我对金融function一无所知之外,这完全没有问题,而且我碰到了FV(未来价值)。

这是电子表格:

B3 = 100 B4 = 10 B5 = B4*12 B6 = 12 B7 = 3 B8 = (1+B6)^(1/12)-1 B9 = ABS(FV(B8,B5,B3/(1+B7),,1)) // and here lies the problem 

这就是OO.org的帮助必须说的FV:

根据定期,恒定支付和固定利率(未来价值)返回投资的未来价值。

语法:FV(Rate; Num_periods; Payment; PV(optional); Type)

问题是:如何使用上面的参数计算FV?

示例值:

 B3 = 100 1 1 2 B4 = 10 1 2 2 B9 = 21,751.06 12.39 26.28 52.55 

未来价值只是本金额加上未偿还期间的全部应计利息。

在你的例子中,本金是100(B3),时间是10年(120个月 – B5),利率是B8。 你确定B6不等于.12,还是12%? 那将是每年12%的利率,或每月约1%(实际每月利率为12%的月利率的公式为1.12 ^(1/12) – 1)。

未来的价值只是主要时间(1+利率)时间,在这种情况下,大概是100 *(1.01)^ 120。

这是从Javascript中的Excel确切的FV公式。 它也与0%的利益

 function FV(rate, nper, pmt, pv, type) { var pow = Math.pow(1 + rate, nper), fv; if (rate) { fv = (pmt*(1+rate*type)*(1-pow)/rate)-pv*pow; } else { fv = -1 * (pv + pmt * nper); } return fv.toFixed(2); } 

这里有一个你可以参考的计算器 。

转到Javascript源,你可以find计算未来价值的公式是这样的:

 function checkNumber(input, min, max, msg) { msg = msg + " field has invalid data: " + input.value; var str = input.value; for (var i = 0; i < str.length; i++) { var ch = str.substring(i, i + 1) if ((ch < "0" || "9" < ch) && ch != '.') { alert(msg); return false; } } var num = 0 + str if (num < min || max < num) { alert(msg + " not in range [" + min + ".." + max + "]"); return false; } input.value = str; return true; } function computeField(input) { if (input.value != null && input.value.length != 0) input.value = "" + eval(input.value); computeForm(input.form); } function computeForm(form) { if ((form.payments.value == null || form.payments.value.length == 0) || (form.interest.value == null || form.interest.value.length == 0) || (form.principal.value == null || form.principal.value.length == 0)) { return; } if (!checkNumber(form.payments, 1, 480, "# of payments") || !checkNumber(form.interest, .001, 99, "Interest") || !checkNumber(form.principal, 1, 10000000, "Principal")) { form.fv.value = "Invalid"; return; } var i = form.interest.value; if (i > 1.0) { i = i / 100.0; form.interest.value = i; } i /= 12; var pow = form.principal.value; for (var j = 0; j < form.payments.value *12; j++) pow = (pow * i) + (pow *1); form.fv.value = pow form.totalint.value = (form.fv.value - form.principal.value) } 

您将很难将Excel移到网上。
相反,您最好考虑使用Google文档。

但是,如果你只需要这一个特定的spreedsheet,那么这个页面解释公式。
此外,您可以在“ 复合利益Wiki”页面上find相关信息。