T-SQL プロシージャからデータを取得しています。列の 1 つが数値 (18,2) としてキャストされています。
この手順を実行してデータを Excel にコピーすると、この列の合計は、vb.net でこれを実行したときに得られる合計よりも 0.01 少なくなります。
vb.netでは、列の値を辞書(文字列、10進数)に集約しています
なぜこれが起こっているのかわかりません。
If Not dr.IsDBNull(dr.GetOrdinal(f.field)) Then
Dim dval = If(dr.IsDBNull(dr.GetOrdinal(f.field)), 0D, dr.GetDecimal(dr.GetOrdinal(f.field)))
di.Add(New FieldValue With {.Type = f, .Value = If(rpt.allow_negatives, dval, Math.Abs(dval))}, rpt.overide_format)
If rpt.has_total AndAlso f.totaled Then totals(f.field) += dval
Else
di.Add(New FieldValue With {.Type = f, .Value = 0D})
End If