基于 Javascript 的高级 PMT 计算

Advanced PMT calculation based in Javascript

我要进行高级 PMT 计算。我得到了一个例子来完成,虽然代码会给我正确的答案,但它只适用于那个例子。

我正在使用 HP 17bII 计算器来验证我的结果,这需要相同。

现值: PV - -1000

终值: FV - 0

利率: IYR - 8

频率: 频率 - 12

付款次数: N - 60

预付货号付款次数: ADV - 3

这些是值和预期结果,即 PMT19.88.

在计算器的公式中,函数调用另外两个函数,SPPVUSPV。下面有算出来的。

PV   = -10000;         //Present Value
FV   = 0;              //Future Value
IYR  = 8;              //Interest Rate
FREQ = 12;             //Payment Frequency
ADV  = 3;              //No. of advance payments
TERM = 57;             //Term of the Loan
N    = 57 + 3;         //The N is the sum of ADV + TERM

SIR  = IYR / FREQ;         //Interest rate for the SPPV var
UIR  = (IYR / 100) / FREQ; //Interest rate for the USPV

SPPV = (1 / (Math.pow(((1 + SIR) / 100), N)));
USPV = (Math.pow((1 + UIR), TERM) - 1)/(UIR*Math.pow((1+UIR), TERM));

PMT  = Math.abs((PV - FV * SPPV)/(USPV + ADV));

如有任何帮助,我们将不胜感激。抱歉,如果这是重复的或其他方式,我已经进行了广泛的搜索。

谢谢!

我发现我哪里出错了。这是我更新的代码。这是将 USPV var 中的 TERM 切换为 N 的问题。我觉得很傻。

        SIR = IYR / FREQ;
        UIR = (IYR / 100) / FREQ;
        N   = ADV + TERM;

        SPPV = 1 / (Math.pow((1 + (SIR / 100)), N));
        USPV = (Math.pow(1 + UIR, TERM) - 1) / (UIR * (Math.pow(1 + UIR, TERM)));

        PMT = Math.abs((PV - FV * SPPV) / (USPV + ADV));