2

我有一个包含以下数字的行的表:

4191808.51
3035280.22
3437796.06
4013772.33
1740652.56
0

该表的总和是16419309.68

当我对该表执行 Linq SUM 查询时,它返回一个完全不同的数字:19876858.14

我用来求和的代码如下:

IEnumerable<MyData> data = _myRepository.GetMatching(myValue);
decimal sumSales = data.Sum(x => x.Sales);

这可能是什么原因造成的?我怀疑一些最大十进制值,但找不到相关信息

4

1 回答 1

0

你能检查一下你的

IEnumerable<MyData> data = _myRepository.GetMatching(myValue);

执行后在调试器中。我怀疑您正在选择一些不同的数据集 - 而不是您在示例中显示的数据。我试图重新创建你的情况 LinqPad,但不断得到正确的答案。

decimal[] data = {
    4191808.51m
    ,3035280.22m
    ,3437796.06m
    ,4013772.33m
    ,1740652.56m
    ,0m
};

decimal sumSales = data.Sum();
sumSales.Dump();

并获得:16419309.68

于 2015-07-06T20:45:54.793 回答