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") + " руб.";
}
}
}