如何在 .NET Core 中计算 Return 的内部利率 (IRR)

How to calculate Internal Rate of Return (IRR) in .NET Core

我尝试在 C# .NET Core 2.2 项目中计算 Return 的内部速率 (IRR)

有没有我可以使用的内置公式?

根据可用的 MSDN 文档 here,您应该能够将 VisualBasic 命名空间及其财务公式导入 .NET Framework 项目。

但是,在 .NET Core 项目中尝试这样做,我没有从 Microsoft.VisualBasic 包中获得任何有用的方法。

任何提示(除了从头开始编写整个算法)?

没有内置公式,除非您使用 .NET Core 3.0 Preview 9

double[] values = new double[] { -70000, 22000, 25000, 28000, 31000 };

//// values[0] - Business start-up costs.
//// values[1-n] - Positive cash flows reflecting income for four successive years.

//// Guess starts at 10 percent.
double guess = 0.1;

double CalcRetRate = Financial.IRR(values, guess);

最重要的是,正如@cdev 所发现的那样,除非您切换到 .NET Core 3.0 预览版,否则没有内置公式

但是,作为一种解决方法,我找到了一个 Nuget 包,它包装了 Excel 金融函数库:ExcelFinancialFunctions from Luca Bolognese 并包含一个 IRR 方法。

然后,就变得简单了:

    private double ComputeIRR()
    {
        double[] cashFlows = new double[]{-1000,100,100,1200}; //should contain at least one negative and one positive value
        double irr = Financial.Irr(cashFlows);
        return irr;
    }