gpt4 book ai didi

c# - Financial.IRR 未在 C# 中计算

转载 作者:太空狗 更新时间:2023-10-29 23:14:56 26 4
gpt4 key购买 nike

我无法计算 IRR。我使用 Microsoft.VisualBasic 来计算 IRR。这是一个案例:

using Microsoft.VisualBasic;

...

static void Main(string[] args)
{
double[] tmpCashflows = new double[] {
-480117.0,
4471.5158140594149,
6841.5950239895265,
6550.383550359461,
6295.8611873818609,
6074.6070899770129,
5883.532880960287,
6006.9907860976427,
6133.1633945923877
,6262.1156759885489
//,6393.9143799520116
};

decimal irr = 0;
try
{
double tmpIrr = Financial.IRR(ref tmpCashflows);
...
}
catch (Exception ex)
{
irr = 0;
}


}

它给出“参数无效”类型的异常(在 Microsoft.VisualBasic.Financial.IRR(Double[]& ValueArray, Double Guess))。但是,如果我在 Excel 中进行计算,这不会显示任何错误。

最佳答案

您需要提供一个好的 Guess 值作为此 API 的第二个参数。默认值 0.1 对您的输入无效。

试试这个:

double tmpIrr = Financial.IRR(ref tmpCashflows, 0.3);

你应该得到一个 IRR 为 -0.2987

看起来 API 只处理特定的输入情况,而对其他情况的任何猜测都会失败。这是 Microsoft 在此处确认的 IRR API 错误。

如果猜测成为问题,您最好使用第 3 方可靠的库来计算 IRR。

http://connect.microsoft.com/VisualStudio/feedback/details/781299/microsoft-visualbasic-financial-irr-doesnt-solve-for-irr-correctly-in-certain-cases-with-any-guess

您收到Argument is not valid 异常的原因是因为无法为默认的Guess value of 0.1 计算IRR。请注意,给定值满足一个负值(付款)和一个正值的条件。 (收据)

在内部,**Microsoft.VisualBasic.Financial.IRR** 遍历输入值并尝试计算超过 40 次迭代的 IRR。它从未遇到有效 IRR 的中断条件,因此最终抛出此错误。

请注意,Excel 给出的值为 -30%。

同时,尝试像这样的数组的 IRR

tmpCashflows = new double[] { -100, 200, 300 };
double tmpIrr = Microsoft.VisualBasic.Financial.IRR(ref tmpCashflows);

给出 2.0 或 200% 的 IRR。 (通过代码和 Excel)

关于c# - Financial.IRR 未在 C# 中计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22857597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com