我正在使用C#创建一个摊销流程。但我有一个问题,为什么我的利益,校长和&平衡。
这是我的C#Amortization截图。
无论如何它应该是这样的。
这是我的C#代码。
double PV = Convert.ToDouble(txt_principal.Text);
double NPER = Convert.ToDouble(txt_nop.Text);
double RATE = Convert.ToDouble(txt_irpp.Text);
double PMT = Convert.ToDouble(txt_payment.Text);
String PMT_string = PMT.ToString("#,###.##");
String RATE_string = RATE.ToString("#,###.##");
String NPER_string = NPER.ToString("#,###.##");
String PV_string = PV.ToString("#,###.##");
int count = 0;
for (count = 0; count < NPER; count++)
{
dgv_table.Rows.Add(1);
int numrows = count + 1;
dgv_table.Rows[count].Cells[0].Value = numrows;
dgv_table.Rows[count].Cells[1].Value = PMT_string;
double interest = PV * RATE / 100;
double principal = PMT - RATE;
if (PV < PMT)
{
principal = PV;
PMT = RATE + principal;
}
PV = PV - principal;
if (PV < 0)
{
principal = principal + PV;
RATE = RATE - PV;
PV = 0;
}
dgv_table.Rows[count].Cells[2].Value = interest.ToString("#,###.##");
dgv_table.Rows[count].Cells[3].Value = principal.ToString("#,###.##");
dgv_table.Rows[count].Cells[4].Value = PV.ToString("#,###.##");
任何帮助先生。为什么我的利益,本金和价值的价值平衡错了?
答案 0 :(得分:1)
我能看到的第一个问题是:
double principal = PMT - RATE;
这使您的利率远离支付以获得原则。这就是为什么在第一行中,您有14,544.16
而不是11,047.66
作为原则。改为将其切换为:
double principal = PMT - interest;
编辑:修复上述操作会修复所有结果。 (虽然我希望这有所帮助,但我仍然投票支持这个问题:它不适合StackOverflow的格式,因为它不太可能对其他人有用。)