从aspx.vb调用asp.net stdef函数

时间:2018-01-11 04:38:56

标签: asp.net sql-server function

asp.net中有 stdev 的功能吗? 我尝试使用数学。功能,但找不到它有用。

你能推荐我吗?

之前的

2 个答案:

答案 0 :(得分:1)

您可以使用以下功能查找标准差,

C#

private double CalculateStdDev(IEnumerable<double> values)
{   
  double ret = 0;
  if (values.Count() > 0) 
  {      
     //Compute the Average      
     double avg = values.Average();
     //Perform the Sum of (value-avg)_2_2      
     double sum = values.Sum(d => Math.Pow(d - avg, 2));
     //Put it all together      
     ret = Math.Sqrt((sum) / (values.Count()-1));   
  }   
  return ret;
}

VB

Private Function CalculateStdDev(ByVal values As IEnumerable(Of Double)) As Double
    Dim ret As Double = 0
    If values.Count() > 0 Then
        Dim avg As Double = values.Average()
        Dim sum As Double = values.Sum(Function(d) Math.Pow(d - avg, 2))
        ret = Math.Sqrt((sum) / (values.Count() - 1))
    End If

    Return ret
End Function

答案 1 :(得分:0)

您可以使用免费和开源的第三方库。我使用了SmartStats,您可以从SmartStats download下载。

  1. 一旦下载了这个只是dll文件的库,就可以了 应该将该文件放入VB.Net Asp.Net的bin目录中 项目,或在您的Vb.Net Web应用程序中添加对它的引用。
  2. 然后,您只需使用以下代码来确定标准偏差。 someNumbers是下面代码中的双精度值数组。

    Dim disperse As SmartStats.dispersion = New SmartStats.dispersion()
    Dim stdDev As Double = disperse.StdDev(someNumbers)
    
  3. 您可以使用此库来确定许多其他统计函数,以备将来需要时使用。有关此库可用的其他统计函数的更多详细信息,请参见以下网址Statistical functions with SmartStats library

  4. 使用aspx页面的代码隐藏,使用此库计算标准差的完整工作示例如下所示。

    Partial Class _Default
    Inherits Page
    
    Private Sub _Default_Load(sender As Object, e As EventArgs) Handles Me.Load
    
        'create a collection of double numbers
        Dim someNumbers As List(Of Double) = New List(Of Double)()
    
        someNumbers.Add(2)
        someNumbers.Add(10)
        someNumbers.Add(6)
        someNumbers.Add(11)
        someNumbers.Add(14)
        someNumbers.Add(21)
        someNumbers.Add(1)
        someNumbers.Add(100)
        someNumbers.Add(65)
    
        'only below two lines are needed to determine standard deviation
        Dim disperse As SmartStats.dispersion = New SmartStats.dispersion()
        Dim stdDev As Double = disperse.StdDev(someNumbers.ToArray())
    
    End Sub
    End Class