Javascript-如何计算一个数字随时间的总增长?
谢谢你过来 我正在创建一个显示总复利的小程序。Javascript-如何计算一个数字随时间的总增长?,javascript,math,Javascript,Math,谢谢你过来 我正在创建一个显示总复利的小程序。 例如,假设每个月一个人的月收入增加5%。他们的起薪是1000美元,但一年后,他们的月薪将达到1820美元。 我已经知道了,它会显示1年后的月收入(1820美元),但我似乎找不到办法让它显示你在1年内的总收入增长 第1个月=+50 第2个月=+104 第3个月=+160 第4个月=+220 第5个月=+282 第6个月=+348 第7个月=+417 第8个月=+490 第9个月=+566 第10个月=+647 第11个月=+731 第12个月=+82
例如,假设每个月一个人的月收入增加5%。他们的起薪是1000美元,但一年后,他们的月薪将达到1820美元。
我已经知道了,它会显示1年后的月收入(1820美元),但我似乎找不到办法让它显示你在1年内的总收入增长 第1个月=+50
第2个月=+104
第3个月=+160
第4个月=+220
第5个月=+282
第6个月=+348
第7个月=+417
第8个月=+490
第9个月=+566
第10个月=+647
第11个月=+731
第12个月=+820
________________
总额=4835美元 通常这是很容易做到的,但由于金额、百分比和持续时间都是变量,我不知所措 基本上我想做的是 “金额:1000
百分比:5
持续时间:12
总计:$1820
获得的资金总额:4835美元” 非常感谢您抽出时间来帮忙
祝你今天休息得愉快 HTML
<input id="amount" type="number" onchange="myFunction()">
<input id="percentage" type="number" onchange="myFunction()">
<input id="duration" type="number" onchange="myFunction()">
<h2 id="payment"></h2>
您需要循环查看
持续时间中的每个勾号,计算与基本金额的差额,然后打印:
const outputElm=document.getElementById(“付款”);
const appendP=textContent=>{
outputElm.appendChild(document.createElement('p'))
.textContent=textContent;
};
函数somethingHere(){
outputElm.textContent=“”;
var base=document.getElementById('amount')。值;
var percentage=document.getElementById('percentage')。值;
var duration=document.getElementById('duration')。值;
常数乘数=1+(百分比*0.01);
让付款=基数;
for(设i=0;i
金额
百分比
持续时间
使用循环来确定每月的增长。获得增加后,将其添加到增加的总数中
函数增加(){
var amount=document.getElementById('amount')。值;
var percentage=document.getElementById('percentage')。值;
var duration=document.getElementById('duration')。值;
var合计=0;
对于(var i=1;i首先,您的复利计算是错误的。使用变量a
(金额)、i
(增加)和d
(期限),复利金额将表示为:
然后,对于持续时间内获得的总金额,总和表达式为:
可重写为:
将其插入到JavaScript代码中,可以得到以下结果:
函数myFunction(){
var a=+document.getElementById('amount').value;
var i=+document.getElementById('percentage').value/100;
var d=+document.getElementById('duration').value;
风险值支付=a*((1+i)**d);
var总额=a/i*((1+i)**d)+i*((1+i)**d-d-1)-1);
document.getElementById(“付款”).textContent=付款;
document.getElementById('total')。textContent=total;
}
我检查结果。结果与OP描述的不一样。OP的数学(和期望值)已关闭,请参阅问题注释我认为您的数学(和期望值)关闭。为什么将持续时间提高到2的幂?检查,结果应该是1795.86
哦,我的天啊!非常感谢!我甚至没有注意到我的数学关闭了。这非常有效!谢谢你在这方面的帮助。
function myFunction() {
var amount = document.getElementById('amount').value;
var percentage = document.getElementById('percentage').value;
var duration = document.getElementById('duration').value;
var payment = Math.round(amount * (1 + (percentage * 0.01) / duration)**(duration**2));
document.getElementById('payment').textContent=payment;
}