P/Y C/Y - 计算付款的未来价值 (FV) 和每年的复利期 (C/Y)



我正在做一个TVM项目,不太明白复利是如何转化为代码的。我正在使用BA II Plus财务计算器作为参考。

示例:如果利息每季度复利为 5%,则计算 10 年内每月月初支付的 100 美元的未来价值。

在财务计算器中:

N: 120 (10y x 12m(

I/Y:5%(年利率(

P/Y: 12 (每年12次(

C/Y: 4 (每年 4 次(

PV: 0

PMT: 100

BGN:真

FV

: [CPT] [FV] => -15575.41334


这是未来价值方法。

static public double fv(double r, int n, double pmt, double pv, int bgn) {
    return -(pv * Math.pow(1 + r, n) + pmt * (1 + r * bgn) * (Math.pow(1 + r, n) - 1) / r);
}

使用示例中的数字调用该方法

//             rate     n    pmt  pv bgn
double fv = fv(0.05/12, 120, 100, 0, 1); // -15592.928894335751 which is wrong

似乎您在计算中遇到了数值错误。

浮点计算本质上会受到舍入误差的影响,这些误差可能会加起来并变得非常大。

例如一般背景(长读(:

https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

您可以尝试使用高精度计算库。

例如,这个答案中提到了一些不错的选择:

https://stackoverflow.com/a/284588/9549171

编辑:您可以尝试分析您正在使用的表达式 https://herbie.uwplse.org/(但是网络版本在您的表达式上超时,您必须下载他们的软件(

相关内容

  • 没有找到相关文章

最新更新