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(