Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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_Math - Fatal编程技术网

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