基于Javascript的高级PMT计算

基于Javascript的高级PMT计算,javascript,calculator,finance,Javascript,Calculator,Finance,我要做一个先进的PMT计算。我已经给出了一个例子,通过工作,而代码将给我正确的答案,它只适用于该例子 我正在使用HP 17bII计算器验证我的结果,结果必须相同 现值:PV--1000 未来价值:FV-0 利率:IYR-8 频率:频率-12 付款数量:N-60 预付款数量:ADV-3 这些是数值和预期结果,PMT为19.88 在计算器的公式中,该函数调用另外两个函数,SPPV和USPV。下面列出了一些解决方案 PV = -10000; //Present Value FV

我要做一个先进的PMT计算。我已经给出了一个例子,通过工作,而代码将给我正确的答案,它只适用于该例子

我正在使用HP 17bII计算器验证我的结果,结果必须相同

现值:PV--1000

未来价值:FV-0

利率:IYR-8

频率:频率-12

付款数量:N-60

预付款数量:ADV-3

这些是数值和预期结果,PMT为19.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));
任何帮助都将不胜感激。对不起,如果这是一个重复或其他,我已经广泛搜索


谢谢我发现了哪里出了问题。这是我的更新代码。这是一个在USPVvar中切换术语的问题。我觉得很傻

        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));

`它只适用于那个例子`-这是什么意思?请具体说明,包括你所有的信息。键入“不起作用”是没有帮助的。它怎么不起作用?输入是什么,输出是什么,预期是什么?这三条信息是必需的,这样我们才能发现算法失败的地方。这里的USPV与你问题中的USPV完全相同。你改变了(我想是正确的)SPPV的计算方法。