数か月間の売上高を含むSharePointリストがあります。月、年、売上の3つの列を使用しています。データを月ごとの売上にグループ化し、それをxmlとしてエクスポートするWebサービスを作成しようとしています。Sharepointでは、2010年の売上高は小数点以下2桁で、2011年と2012年の売上高は整数です。次のlinqクエリを実行すると、2010年と2011年の正しい合計が得られますが、2012年の場合は数値が100万単位に丸められます。
var query = from row in SPListDT.AsEnumerable()
group row by new
{
year = row.Field<double>("Year"),
month = row.Field<string>("Month")
} into grp
orderby grp.Key.year, grp.Key.month
select new
{
Key = grp.Key,
year = grp.Key.year,
month = grp.Key.month,
budgetSum =grp.Sum(r => r.Field<double>("Sales"))
};
Sharepointには、このメソッドでdoubleを返す数値(数値)のデータ型が1つしかないようです。私はWebサービスを使用して、取得したすべての数値をキックバックするだけで、毎年すべてが適切です。一部のデータのみを丸めるのはなぜですか?