Рассчитайте стоимость ежемесячных инвестиций в C#
Магия инвестиций с сложным интересом заключается в том, что со временем вы получаете интерес к интересам.
За каждый месяц эта программа рассчитывает проценты по остатку на счете. Затем он добавляет проценты и ежемесячный вклад в баланс и отображает результат. (Обратите внимание, что проценты усугубляются ежемесячно не непрерывно.)
Следующий код показывает, как программа выполняет свои вычисления.
// Рассчитайте проценты, уплачиваемые ежемесячно.
private void btnGo_Click(object sender, EventArgs e)
{
// Получить параметры.
decimal monthly_contribution = decimal.Parse(
txtMonthlyContribution.Text, NumberStyles.Any);
int num_months = int.Parse(txtNumMonths.Text);
decimal interest_rate = decimal.Parse(
txtInterestRate.Text.Replace("%", "")) / 100;
interest_rate /= 12;
// Вычислить.
lvwBalance.Items.Clear();
decimal balance = 0;
decimal total_interest = 0;
decimal total_principle = 0;
for (int i = 1; i <= num_months; i++)
{
// Отображение месяца.
ListViewItem new_item = lvwBalance.Items.Add(i.ToString());
// Отображение интереса.
decimal interest = balance * interest_rate;
new_item.SubItems.Add(interest.ToString("c"));
total_interest += interest;
new_item.SubItems.Add(total_interest.ToString("c"));
// Добавьте вклад.
balance += monthly_contribution;
total_principle += monthly_contribution;
new_item.SubItems.Add(total_principle.ToString("c"));
// Отображение баланса.
balance += interest;
new_item.SubItems.Add(balance.ToString("c"));
}
// Выделите последнюю запись.
lvwBalance.Items[lvwBalance.Items.Count - 1].EnsureVisible();
}
// Рассчитайте проценты, уплачиваемые ежемесячно.
private void btnGo_Click (отправитель объекта, EventArgs e)
{
// Получить параметры.
decimal month_contribution = decimal.Parse (
txtMonthlyContribution.Text, NumberStyles.Any);
int num_months = int.Parse (txtNumMonths.Text);
decimal interest_rate = decimal.Parse (
txtInterestRate.Text.Replace ("%", "")) / 100;
interest_rate / = 12;
// Вычислить.
lvwBalance.Items.Clear ();
десятичный баланс = 0;
decimal total_interest = 0;
decimal total_principle = 0;
for (int i = 1; i & lt; = num_months; i ++)
{
// Отображение месяца.
ListViewItem new_item = lvwBalance.Items.Add (i.ToString ());
// Отображение интереса.
десятичный процент = баланс * interest_rate;
new_item.SubItems.Add (interest.ToString ( "с"));
total_interest + = интерес;
new_item.SubItems.Add (total_interest.ToString ( "с"));
// Добавьте вклад.
баланс + = ежемесячно;
total_principle + = ежемесячное_содержание;
new_item.SubItems.Add (total_principle.ToString ( "с"));
// Отображение баланса.
баланс + = процент;
new_item.SubItems.Add (balance.ToString ( "с"));
}
// Выделите последнюю запись.
lvwBalance.Items [lvwBalance.Items.Count - 1] .EnsureVisible ();
}
...
Затем программа очищает свой ListView, а затем проходит через месяцы, изучаемые.
В течение каждого месяца код вычисляет и отображает проценты на текущем балансе. Затем он добавляет текущий интерес к общей заинтересованности и отображает это.
Затем программа добавляет вклад этого месяца в общий баланс и общий принцип и отображает эти значения. Наконец, он отображает новый баланс.
После завершения цикла код вызывает метод EnsureVisible для последней записи элемента управления ListView для прокрутки до конца списка.
