我有一个包含以下数字的行的表:
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);
可能导致这种情况的原因是什么?我怀疑有一些最大十进制值,但无法找到关于
的信息答案 0 :(得分: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