感谢您的光临!
我正在创建一个小程序,将显示总复利。
例如,假设一个人每个月的月收入增加5%。他们以1,000美元开始,但是一年后,他们每月可以赚1,820美元。
我已经知道它会显示一年后的月收入(1,820美元),但是我似乎找不到一种方法来显示您在一年中的总收入。 / p>
第1个月= +50
第二个月= +104
第三个月= +160
第4个月= +220
第5个月= +282
第6个月= +348
第7个月= +417
第8个月= +490
第9个月= +566
第10个月= +647
11月= +731
12个月= +820
________________
总计= $ 4,835
通常这很容易做到,但是由于数量,百分比和持续时间都是变量,所以我很茫然。
基本上我想做的是
“金额:1000
百分比:5
持续时间:12
总计:$ 1,820
总收益:4,835美元”
非常感谢您抽出宝贵的时间来提供帮助!
祝您有美好的一天!
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>
JAVASCRIPT
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;
}
答案 0 :(得分:2)
您需要遍历duration
中的每个刻度线,计算基准金额的差额并打印出来:
const outputElm = document.getElementById("payment");
const appendP = textContent => {
outputElm.appendChild(document.createElement('p'))
.textContent = textContent;
};
function somethingHere() {
var base = document.getElementById('amount').value;
var percentage = document.getElementById('percentage').value;
var duration = document.getElementById('duration').value;
const multiplier = 1 + (percentage*0.01);
let payment = base;
for (let i = 0; i < duration; i++) {
payment *= multiplier;
appendP(`Month ${i + 1}: +$${Math.round(payment - base)}`);
}
appendP('----------------');
appendP(`Total: $${Math.round(payment)}`);
}
<p>Amount <input id="amount" type="number" value="0" onchange="somethingHere()"></p>
<p>Percentage <input id="percentage" value="5" type="number" onchange="somethingHere()"></p>
<p>Duration <input id="duration" type="number" value="12" onchange="somethingHere()"></p>
<div id="payment"></div>
答案 1 :(得分:2)
首先,您的复利计算是错误的。使用变量DateRangePicker
(金额),a
(增加)和i
(持续时间),复合量将表示为:
然后,对于持续时间内获得的总金额,总和表达式为:
可以改写为:
将其放入JavaScript代码中,您将获得以下内容:
d
function myFunction() {
var a = +document.getElementById('amount').value;
var i = +document.getElementById('percentage').value / 100;
var d = +document.getElementById('duration').value;
var payment = a * ((1 + i) ** d);
var total = a / i * (((1 + i) ** d) + i * ((1 + i) ** d - d - 1) - 1);
document.getElementById('payment').textContent = payment;
document.getElementById('total').textContent = total;
}
答案 2 :(得分:1)
使用循环来确定每个月的增长。得到增加后,将其添加到增加总数中。
function increase() {
var amount = document.getElementById('amount').value;
var percentage = document.getElementById('percentage').value;
var duration = document.getElementById('duration').value;
var total = 0;
for (var i = 1; i <= duration; i++) {
var payment = Math.round(amount * (1 + (percentage * 0.01) / i)**(i**2));
total += (payment - amount);
}
document.getElementById('payment').textContent=payment;
console.log(total);
}