【问题标题】:Javascript interest calculator, how to return values with two different ratesJavascript利息计算器,如何以两种不同的利率返回值
【发布时间】:2017-09-26 23:59:22
【问题描述】:

我有这个收入计算器功能

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;
}

它采用“投资价值”并根据给定率计算收入,在这种情况下,使用 for 循环限制为 5 年。我需要的是每隔 1 年计算一次 earnings[0],每隔 5 年计算一次 earnings[1]earnings[4]

所以投资价值为 1000,利率为 10%,它会在 5 年内返回以下产出

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

我想要的是这个

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

【问题讨论】:

  • 你可以直接推导出公式 f(year) 。搜索复利。

标签: javascript calculator


【解决方案1】:

您可以使用公式来计算收入。

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));
});

【讨论】:

  • 谢谢你,正是我需要的
【解决方案2】:

您可以在 for 循环中对年份使用模数来仅添加可被 5 整除的年份。然后为第一年添加另一个 or 条件:

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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 2011-07-25
    • 2023-03-28
    相关资源
    最近更新 更多