下面的讨论提供了与 Excel IRR 函数相比始终不正确的 Objective C IRR 计算代码。有谁知道为什么会有这样的差异?
之前的讨论中提供了使用的代码:
在 Objective-C 中以编程方式计算 IRR(内部收益率)和 NPV
我用来计算 IRR 的测试现金流如下:“打印 tempCashFlow: (“-5099701.25”、“-22503.796875”、“-22503.79296875”、“-22503.79296875”、“-20907.26171875”、“-17899.7421875”、 "-17899.7421875", "-17899.7421875", "-14660.69140625", "-12447.80078125", "-12447.796875", "-12018.1640625", "-5991.81640625", "-5991.81640625", "-5991.81640625", "-2885.875", “1653.125”、“1653.125”、“1653.125”、“8307.328125”、“11110408.45703125”)
上述临时现金流包含 5 年期间的季度数据(即 20 个期间加上时间零期间……所以现金流中有 21 个数字)。
该代码提供了 15.2% 的 IRR,而不是 Excel IRR 函数产生的大约 16.0%。我也手动测试过,我相信 16% 是正确的答案。谁能帮助理解代码可能有什么问题?我看不到任何问题。它似乎也与此链接上推广的代码相同:
http://www.codeproject.com/Tips/461049/Internal-Rate-of-Return-IRR-Calculation
PS:我还注意到,如果我将现金流减少到 2 年而不是 5 年(例如 35%(不正确)与 45% IRR(正确答案)之类的东西),误差幅度会急剧增加