Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中循环中的复利计算器_Javascript - Fatal编程技术网

JavaScript中循环中的复利计算器

JavaScript中循环中的复利计算器,javascript,Javascript,我正在研制一台计算单利和复利的计算器。简单的利息很好,但我似乎不能用循环来解决复利的问题。我需要一个循环,因为将数据推送到数组中,以便稍后在图表中使用它 我从这里得到了公式: 我将此作为参考: 代码在这里工作: 到目前为止,我有以下信息(更新): //用户输入: //初始存款(期初余额) //年数 //兴趣 //经常存款额 //存款和复合频率(每月、每周、每年) //计算 var investedCapitalArray=[]; var simpleInterestArray=[]; var

我正在研制一台计算单利和复利的计算器。简单的利息很好,但我似乎不能用循环来解决复利的问题。我需要一个循环,因为将数据推送到数组中,以便稍后在图表中使用它

我从这里得到了公式:

我将此作为参考:

代码在这里工作: 到目前为止,我有以下信息(更新):


//用户输入:
//初始存款(期初余额)
//年数
//兴趣
//经常存款额
//存款和复合频率(每月、每周、每年)
//计算
var investedCapitalArray=[];
var simpleInterestArray=[];
var compoundInterestArray=[];
var compoundPrincipal=0;
风险值年数=[];
累计投资风险值;
函数计算(){
年份=[];
让利率=rateNumeric.getNumber()/100;//年利率
让additionalDeposit=additionalNumeric.getNumber();//定期存款
let frequency=freqInput.value;//定期存款的频率
让initialDeposit=initialNumeric.getNumber();
设taxRate=taxNumeric.getNumber();
//第一年投入资本额
投资资本阵列=[];
投资资金推送(初始存款+(频率*额外存款));
//第一年单利
simpleInterestArray=[];
simpleInterestArray.push((投资资本阵列[0]*((利息)/100))*(1-税率));
//第一年计算利息
复合区间=[];
设firstYearInvestment=investedCapitalArray[0];//第一年存款+第一年定期存款
for(设i=1;i
问题在于你应该使用的偏执理论(investedCapitalArray[i-1]+compoundInterestArray[i-1])*(1+0.07)。谢谢

问题在于你应该使用的妄想症
(investedCapitalArray[i-1]+compoundInterestArray[i-1])*(1+0.07)
。谢谢

我认为问题在于解除对象的绑定。试试这个:

compoundInterestArray.push( compoundInterestArray[i-1] + (parseInt(investedCapitalArray[i-1]) + parseInt(simpleInterestArray[i-1])) * ( rateNumberic.getNumber() / 100))  );

我认为问题在于解除对象的绑定。试试这个:

compoundInterestArray.push( compoundInterestArray[i-1] + (parseInt(investedCapitalArray[i-1]) + parseInt(simpleInterestArray[i-1])) * ( rateNumberic.getNumber() / 100))  );

感谢大家的投入,在彻底研究了复利主题之后,我编写了一个运行完美的算法。其实很简单

我的算法基于以下解释: 什么是复利?复利(或复利)是按初始本金计算的利息,也包括存款或贷款前期的所有累计利息

因此,它在循环中是这样工作的:

复合兴趣+=((简单兴趣[i-1]+复合兴趣)*(兴趣))

完整代码如下


    for (let i = 1; i < yearsInput.value; i++) {

        // Invested capital over the years (works fine)
        investedCapital = (investedCapitalArray[i - 1]) +
            (frequency * additionalDeposit);
        investedCapitalArray.push(investedCapital);

        //  imple interest over the years (works fine)
        simpleInterest = simpleInterestArray[i - 1] +
            ((firstYearInvestment + (frequency * additionalDeposit) * i) * interest);
        simpleInterestArray.push(simpleInterest);

        // compound interest over the years (correct results)
        compoundInterest += (((simpleInterestArray[i - 1] + compoundInterest) * (interest)));
        compoundInterestArray.push(compoundInterest);
    }



for(设i=1;i
感谢大家的投入,在彻底研究了复利主题之后,我编写了一个运行完美的算法。它实际上非常简单

我的算法基于以下解释: 什么是复利?复利(或复利)是按初始本金计算的利息,也包括存款或贷款前期的所有累计利息

因此,它在循环中是这样工作的:

复合兴趣+=((简单兴趣[i-1]+复合兴趣)*(兴趣))

完整代码如下


    for (let i = 1; i < yearsInput.value; i++) {

        // Invested capital over the years (works fine)
        investedCapital = (investedCapitalArray[i - 1]) +
            (frequency * additionalDeposit);
        investedCapitalArray.push(investedCapital);

        //  imple interest over the years (works fine)
        simpleInterest = simpleInterestArray[i - 1] +
            ((firstYearInvestment + (frequency * additionalDeposit) * i) * interest);
        simpleInterestArray.push(simpleInterest);

        // compound interest over the years (correct results)
        compoundInterest += (((simpleInterestArray[i - 1] + compoundInterest) * (interest)));
        compoundInterestArray.push(compoundInterest);
    }



for(设i=1;i
谢谢您的评论,但这一更改使情况变得更糟。我想我误解了这个问题。您是在存储复利金额还是资本加复利金额?如果只是复利金额,则不需要重新添加初始资本金额。我需要只存储累计的计算利息(其他两个计算都可以),所以我对这行有问题:compoundInterestArray.push(