什么是C#Double数据类型和Sql数值中的精确等效转换

时间:2018-04-09 09:05:12

标签: c# sql report rdlc

实际上,我创建了一个RDLC报告,现在我遇到了一个问题,我的模型属性的数据类型是" double"但我的SQL SP返回Decimal,因为我使用数字(18,2),当我想将SP绑定到模型时,这些数据类型会产生冲突。

var result = Database.SqlQuery<ReportVm>
        ("SP_InComeStatement @EntryDateFrom, @EntryDateTo, entryDateFromParam, entryDateToParam).ToList();

我的ReportVm属性是:

public double? TotalAmount{get; set;}

和SP变量是: ReceivableAmount数字(18,2) 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

numeric(18, 2)是一个精确的数字,例如可用于保存财务数据。 double是一个浮点数,并不准确。

我建议改变模型。 decimal将使用双倍的内存,但它会比double更精确:

public decimal? TotalAmount{get; set;}