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