Загрузка данных


using System;
using System.Windows.Forms;

namespace Калькулятор2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnCalculate_Click(object sender, EventArgs e)
        {
            // Используем double для работы с дробными числами (копейками, процентами)
            double sum, annualRate, termInMonths;

            // Считываем данные из TextBox и проверяем на корректность ввода
            if (!double.TryParse(txtSum.Text, out sum) || sum <= 0)
            {
                MessageBox.Show("Введите корректную сумму кредита!", "Ошибка ввода");
                return;
            }

            if (!double.TryParse(txtRate.Text, out annualRate) || annualRate <= 0)
            {
                MessageBox.Show("Введите корректную процентную ставку!", "Ошибка ввода");
                return;
            }

            if (!double.TryParse(txtTerm.Text, out termInMonths) || termInMonths <= 0)
            {
                MessageBox.Show("Введите корректный срок кредита в месяцах!", "Ошибка ввода");
                return;
            }

            // --- Расчет аннуитетного платежа ---
            
            // 1. Месячная процентная ставка (годовая ставка / 12 месяцев / 100%)
            double monthlyRate = annualRate / 12 / 100;

            // 2. Формула аннуитетного платежа:
            // Платёж = Сумма * (Мес.Ставка * (1 + Мес.Ставка)^Срок) / ((1 + Мес.Ставка)^Срок - 1)
            double monthlyPayment = sum * (monthlyRate * Math.Pow(1 + monthlyRate, termInMonths)) / 
                                    (Math.Pow(1 + monthlyRate, termInMonths) - 1);

            // Выводим результат, округленный до 2 знаков после запятой (копейки)
            txtResult.Text = monthlyPayment.ToString("F2") + " руб.";
        }
    }
}