Рассчитайте стоимость ежемесячных инвестиций в 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 для прокрутки до конца списка.