出于某种原因,我使用Microsoft.VisualBasic程序集使用rate
和Pmt
时,我在运行代码时总是给我一个完全错误的数字
我已经仔细阅读了文档,似乎无法确定问题所在:
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
答案 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;