【发布时间】:2015-08-14 16:10:40
【问题描述】:
我正在使用 C# 创建一个摊销过程。但是我遇到了一个问题,为什么我在利息、本金和余额方面得到了错误的答案。
这是我的 C# 摊销屏幕截图。
反正应该是这样的。
这是我的 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("#,###.##");
任何帮助先生。为什么我的利息、本金和余额的价值是错误的?
【问题讨论】:
-
什么是 NPER,PV。编码标准在哪里?为了钱,使用小数而不是双倍。
-
支付次数和本金价值先生。
-
您需要更清楚地描述您的预期行为(从屏幕截图中不清楚您期望如何计算数字;尽管可以做出有根据的猜测,但这样的假设可能不正确) .如果您将变量重命名为有意义的名称而不是缩写,这将有助于读者理解代码的意图。如果您阅读与您对所需行为的描述相关的代码,您可能会发现问题。您的结果与目标相差太远,不能仅由
decimal与double引起
标签: c#