【问题标题】:Excel Formula T.INV Calculation wrong using C#Excel 公式 T.INV 计算错误使用 C#
【发布时间】:2018-12-26 13:19:18
【问题描述】:

在 Excel 中 =T.INV(0.9,5) 返回值“1.475884”。

现在我在 C# 中使用 WorksheetFunction TINV(0.9,5) 的函数。但这给了我结果 0.1321751752

因此,在 C# 中,TINV 结果的值与 excel 相差太多。

Microsoft.Office.Interop.Excel.Application xl = new Microsoft.Office.Interop.Excel.Application();

Microsoft.Office.Interop.Excel.WorksheetFunction wsf = xl.WorksheetFunction;
double result = wsf.TInv(0.9, 5);

使用另一个 NuGet DLL 也发现与以前的 DLL 相同的值:

var chart = new System.Web.UI.DataVisualization.Charting.Chart();
double resultTest = chart.DataManipulator.Statistics.TDistribution(.9, 5, true);

所以,我需要与 Excel 工作表 **T.Inv** 函数中找到的值相同的值。

如何在 c# 中获得相同的 T.INV 值。

谁能帮我得到同样的结果吗?

【问题讨论】:

  • 请将您的所有代码插入代码块中。

标签: c# excel excel-formula worksheet-function


【解决方案1】:

此代码返回学生 t 分布的左尾逆和双尾逆

static void Main(string[] args)
{
    double value = 0.9;
    int degree = 5;

    var chart = new System.Web.UI.DataVisualization.Charting.Chart();
    double resultTest = chart.DataManipulator.Statistics.InverseTDistribution(value, degree);  
    Console.WriteLine(resultTest);

    //left-tailed 
    double result = alglib.invstudenttdistribution(degree, value);
    Console.WriteLine(result);
}

附:我使用了这里提供的 invstudenttdistribution 函数alglib.net

【讨论】:

  • 感谢您的帮助,但我只对匹配 T.INV 感兴趣。那么我能否在 asp.net 中获得 T.INV 函数的任何其他代码或方法,以便我得到 1.475884 作为我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-17
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多