none
最近在用在DataTable进行数据操作时遇到问题,不知道是不是BUG?还是使用时有限制? RRS feed

  • 问题

  • 程序的过程是这样的:
    1、从文件里取得数据放入DATATABLE中形成一个DT。
    2、从DT中取得所需的数据,如第2列的最大值,最小值,平均值,STDEV的值等
    出现的问题:
    1、以前文件中记录少时没有问题,最近使用一个5万条左右记录的文件在求STDEV的值时取的值是“-1.#IND {Double}
        Double: -1.#IND {Double}”,看样是Double型的值,但我用函数转换总是显示“非数字”。其它求最大最小值等均正常。
    2、我把该文件分成2部分运行,一个是前2万条记录,另一个文件是剩下的记录,用这2个文件运行是没有问题的。。。。。。用EXCEL的STDVE也能得到正确的值。。。。。无语啊。。。。。。
    3、怀疑是不是DATATABLE里用STDEV函数有行的限制啊?要不怎么会出现这种问题?!BUG?我找了一个其它文件,发现超过47000条(具体多少没仔细试验)记录后STDEV取数就有上边的问题
    4、是不是取得值我转换的不对?谁知道怎么转换?

    • 已移动 小鱼儿 2009年5月19日 10:28 ([Loc]From:.NET Framework 相关)
    2008年12月5日 3:41

答案

  • 你好:

    查看你的数据源,我想这与你数据的大小无关。5万条数据是看什么数据源,不算多。





    我们要把爱心传递给更多需要帮助的人。
    博客:http://terryfeng.cnblogs.com
    微博:http://t.sina.com.cn/terryfeng
    个人:http://www.terryfeng.com

    2012年4月30日 3:06
    版主

全部回复

  • 5万条全部在Excel中能正常吗?

    2008年12月20日 16:05
  • 你好:

    查看你的数据源,我想这与你数据的大小无关。5万条数据是看什么数据源,不算多。





    我们要把爱心传递给更多需要帮助的人。
    博客:http://terryfeng.cnblogs.com
    微博:http://t.sina.com.cn/terryfeng
    个人:http://www.terryfeng.com

    2012年4月30日 3:06
    版主
  • 没有人知道吗?
    2017年12月13日 0:55
  • 可否增加stddev函数的实现,看得出的结果是不是你需要的

    public static class Extensions { public static double StdDev(this IEnumerable<double> values) { double ret = 0; int count = values.Count(); if (count > 1) { //Compute the Average double avg = values.Average(); //Perform the Sum of (value-avg)^2 double sum = values.Sum(d => (d - avg) * (d - avg)); //Put it all together ret = Math.Sqrt(sum / count); } return ret; } }

    调用 double d=dataTable.AsEnumerable().StdDev();

    还有一种可能是数值类型的原因,DATATABLE中的column是什么类型,doubel,decimal,

    可否都转化为double类型。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2017年12月14日 1:20