WinForms C# Example Application: Compounded Interest
WinForms C# Example Application: Compounded Interest
Description
The compounded interest is the amount of money paid as interest on a loan. This example uses some radio buttons to let the user select the frequency by which to perform the calculation.
![]() |
P = Principal |
| r = Annual (Interest) Rate | |
| m = Number of Compounding Periods per Year | |
| n = Total Number of Compounding Periods | |
| A = Amount Earned After n periods |
Practical Learning: Creating the Application

| Control | Name | Text | Additional Properties | |
| GroupBox | Loan Setup | |||
| Label | Principal: | |||
| TextBox | txtPrincipal | TextAlign: Right | ||
| Label | Interest Rate: | |||
| TextBox | txtInterestRate | TextAlign: Right | ||
| Label | % | |||
| Label | Periods: | |||
| TextBox | txtPeriods | TextAlign: Text | ||
| Label | years | |||
| GroupBox | Compound Frequency | |||
| RadioButton | rdoMonthly | |||
| RadioButton | rdoQuarterly | |||
| RadioButton | rdoSemiannually | |||
| RadioButton | rdoAnnually | |||
| GroupBox | Calculations Results | |||
| Label | Interest Earned: | |||
| TextBox | txtInterestEarned | 0.00 | TextAlign: Right | |
| Label | Amount Earned: | |||
| TextBox | txtFutureValue | 0.00 | TextAlign: Right | |
| Button | btnCalculate | Calculate | ||
| Button | btnClose | Close | ||
namespace CompoundedInterest
{
public partial class Exercise : Form
{
public Exercise()
{
InitializeComponent();
}
private void btnCalculate_Click(object sender, EventArgs e)
{
double principal = 0.00,
interestRate = 0.00,
periods = 0.00;
int compoundType;
// Retrieve the value of the principal
try
{
principal = double.Parse(txtPrincipal.Text);
}
catch (FormatException fe)
{
MessageBox.Show("You must provide a valid value for the loan amount. " + Environment.NewLine +
"The error produced is: " + fe.Message,
"Compound Interest", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
// Retrieve the interest rate
try
{
interestRate = double.Parse(txtInterestRate.Text) / 100;
}
catch (FormatException fe)
{
MessageBox.Show("You must provide a valid value for the interest rate applied on the loan."
+ Environment.NewLine +
"The error produced is: " + fe.Message,
"Compound Interest", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
// Get the number of years
try
{
periods = double.Parse(txtPeriods.Text);
}
catch (FormatException fe)
{
MessageBox.Show("You must provide a valid number of years for the duration of the loan."
+ Environment.NewLine +
"The error produced is: " + fe.Message,
"Compound Interest", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
// Find out what radio button was clicked to apply the compound frequency
if (rdoMonthly.Checked)
compoundType = 12;
else if (rdoQuarterly.Checked)
compoundType = 4;
else if (rdoSemiannually.Checked)
compoundType = 2;
else
compoundType = 1;
// These values will make the calculation easier to read
double i = interestRate / compoundType;
double n = compoundType * periods;
// Perform the necessary calculations
double ratePerPeriod = interestRate / periods;
double futureValue = principal * Math.Pow(1 + i, n);
double interestEarned = futureValue - principal;
// Display the values in the appropriate text boxes
txtInterestEarned.Text = interestEarned.ToString("C");
txtFutureValue.Text = futureValue.ToString("C");
}
private void btnClose_Click(object sender, EventArgs e)
{
Close();
}
}
}private void btnClose_Click(object sender, EventArgs e)
{
Close();
}
Principal: 16500 Interest Rate: 12.75 Periods: 5



|
|
|||
| Home | Copyright © 2010-2026, FunctionX | Friday 27 December 2024, 13:02 | Home |
|
|
|||