14,694,714 members
See more:

```I am trying to calculate the Amortization Schedule. The monthly Payments are being calculated in a separate method monthlyPayments() . I compared it with a Amortization Schedule calculator online and the problem is while the principle balance(newPrincipleBalance), monthlyInterest , EMI(monthly payments) are being calculated correctly , the monthlyPrincipal is not. It keeps decreasing instead of increasing. What can I do to correct it?

{
double principal = 10000;
double rate =0;
double EMI;
double monthlyInterest;
double monthlyPrincipal;
double newPrincipalBalance;

for (int i = 0; i <= 24; i++)
{

Console.WriteLine("principal " + principal);
EMI = Math.Round(monthlyPayments(principal, 5, 2));
Console.WriteLine("EMI " + EMI);

monthlyInterest = (principal * rate) / 12;
monthlyInterest = Math.Round((principal * 5 / 100) / 12);
Console.WriteLine("monthlyInterest " + monthlyInterest);

monthlyPrincipal = Math.Round(EMI - monthlyInterest);
Console.WriteLine("monthlyPrincipal " + monthlyPrincipal);

newPrincipalBalance = Math.Round(principal - monthlyPrincipal);
Console.WriteLine("newPrincipalBalance " + newPrincipalBalance);
Console.WriteLine("===================================");
principal = newPrincipalBalance;
}
}
public static double monthlyPayments(double principal, double rate, int years)
{
rate = rate / 1200;
years = years * 12;

double F = (double)Math.Pow((double)(1 + rate), years);
return principal * (rate * F) / (F - 1);

}```

What I have tried:

I have compared it with the other codes online, still can't figure out what's wrong.
Posted
Updated 26-Sep-20 9:37am
Patrice T 26-Sep-20 13:20pm

Show input, actual output and expected output.

Solution 2

I found the mistake that I was making. The EMI should be constant throughout the loan period, but I was calculating it within the the loop, which changed it each time with the new principal. Thank you for replying

Solution 1

The "monthly principal" would be the difference between the "principal balance" of the current month and that of the previous month. You say the "balances" are correct, then the difference should be correct.

You need to "carry forward" the previous month's balance for your "current month" calculations.

It's referred to as a "declining balance" calculation.
life traveler 26-Sep-20 13:09pm

so how do I calculate the monthlyPrincipal? Wouldn't it be payment(EMI)for the month - Interest? and the balance to carry forward would be principal - monthlyPrincipal?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Top Experts
Last 24hrsThis month
 Richard MacCutchan 120 Patrice T 120 OriginalGriff 95 k5054 55 Rick York 55
 OriginalGriff 5,829 Richard Deeming 3,065 Richard MacCutchan 2,814 CPallini 1,992 Patrice T 1,600

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900