JavaScript利息计算器,如何以两种不同的利率返回值。

3
我有一个收益计算器函数。
EarningsCalculator.prototype.computeEarning = function (rate, investedValue) {

    var earnings = {};
    var currentState = investedValue;
    for (var i = 0; i <= 5; i++) {

            earning=currentState*rate;

            currentState = currentState + earning;

        earnings[i] = currentState;
    }

    return earnings;
}

它需要一个“投资价值”,并根据给定的利率计算收益,本例中仅在5年内使用for循环进行计算。我需要计算每1年的earnings [0]和每5年的earnings [1]earnings [4]

因此,对于投资价值为1000和利率为10%的情况,它在5年内返回以下输出:

Year1  = 1100
Year2  = 1210
Year3  = 1331
Year4  = 1464.1
Year5  = 1610.51

What I want is this

Year1  = 1100
Year5  = 1610.51
Year10 = 2593.74246
Year15 = 4177.248169
Year20 = 6727.499949

你可以推导出直接的复利公式f(year)。搜索复利。 - Sergey Orlov
2个回答

3
您可以使用这个公式来计算收益。

function getPeriodicCompounding(p, r, t) {
    return Math.pow(r + 1, t) * p;
}

var originalPrincipalSum = 1000,
    interestRate = 0.1,
    times = [1, 5, 10, 15, 20]
    
times.forEach(function (time) {
    console.log(time, getPeriodicCompounding(originalPrincipalSum, interestRate, time));
});


谢谢,正是我所需的。 - ponpokopino

1
你可以在for循环中使用模运算,仅添加可被5整除的年份。然后再添加一个或条件来处理第一年:
function EarningsCalculator (rate, investedValue) {

var earnings = {};
var currentState = investedValue;
var YEAR_INTERVAL = 5;
var YEARS_COMPOUNDING = 20;

for (var i = 1; i <= YEARS_COMPOUNDING; i++) {

        earning=currentState*rate;

        currentState = currentState + earning;
            if (i % YEAR_INTERVAL == 0 || i == 1) {
        earnings[i] = currentState;
    }
}

return earnings;
}

var earnings = [];
earnings = EarningsCalculator(.10,1000); 
console.log(earnings);

这样可以在控制台中记录正确的值到你的对象中。

其中一个优点是能够将您的年度间隔作为变量进行更改,而不是为不同时间段硬编码这些值的数组。

JSFiddle: https://jsfiddle.net/kgill/zgmrtmhg/1/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接