计算APR

时间:2018-11-09 15:10:01

标签: c#

出于某种原因,我使用Microsoft.VisualBasic程序集使用ratePmt时,我在运行代码时总是给我一个完全错误的数字

我已经仔细阅读了文档,似乎无法确定问题所在:

origFee30YearRate = 0.04875M;
double Nper = 360;
double Pmt = Financial.Pmt((double)(origFee30YearRate / 12), Nper, 100000);
double PV = ((Pmt * Nper) * -1) - 1775.25;

var org30APR = (Financial.Rate(Nper, Pmt, PV)) * 12;

值显示为:

Nper: 360
Pmt: -529.20822384932933
PV: 188739.71058575856

我不确定在计算Rate时出了什么问题 Rate的输出为:0.0006268633835987544,其中应为5.14

1 个答案:

答案 0 :(得分:2)

要启动您的origFee30YearRate似乎不正确。应该将4.75%分配为0.0475而不是4.75。另外,您似乎在错误地更改付款方式。

double origFee30YearRate = 0.0475;

double Nper = 360;
double Pmt = Financial.Pmt(origFee30YearRate / 12, Nper, 100000);
double PV = (100000 - (100000 * origFee30YearRate / 365 * 15) - (100000 * (1 / 100)) - 1775.25);

var org30APR = Financial.Rate(Nper, Pmt, PV) * 12;

这将返回4.92%的利率,大概是您试图计算回4.75%吗?

之所以没有得到4.75%的原因,是因为PVal是您借了多少钱,我不完全确定您为什么要计算它。

double origFee30YearRate = 0.0475;

double Nper = 360;
double Pmt = Financial.Pmt(origFee30YearRate / 12, Nper, 100000);

var org30APR = Financial.Rate(Nper, Pmt, 100000) * 12;

此外,如果要将单位更改回%,只需乘以100。

var org30APR = (Financial.Rate(Nper, Pmt, 100000) * 12) * 100;

对于APR,我相信您只需要减去费用即可。

var apr = (Financial.Rate(Nper, Pmt, (100000 - 1775.25)) * 12) * 100;