我在使用 LINQ to dataset 查询时遇到了一些问题。我的问题是数据作为双精度返回数据集并且可能为空。当我将数据输入到我的 LINQ 查询中时,它会截断到小数点后一位。我想知道是否有人可以告诉我设置精度以保留两位小数的最佳方法?我尝试过使用“双重?” 但是当我这样做时,我得到一个无效的强制转换异常。这是我的 L2D 查询的示例:
Dim query = _
From bb In bbdata.AsEnumerable(), _
ab In abdata.AsEnumerable() _
Where (bb.Field(Of String)("bbID").ToUpper.Trim() = _
ab.Field(Of String)("abID").ToUpper.Trim()) _
Order By _
bb.Field(Of String)("Sequence") Descending, _
bb.Field(Of String)("Name") Ascending, _
bb.Field(Of String)("bbID").ToUpper.Trim() Ascending, _
ab.Field(Of Decimal?)("TWO_DECIMAL_DIGIT_DOUBLE") Descending _
Select New With _
{ _
.bbID = bb.Field(Of String)("bbID"), _
.Weight = ab.Field(Of Decimal?)("TWO_DECIMAL_DIGIT_DOUBLE"), _
.Sequence = bb.Field(Of String)("Sequence"), _
.Name = bb.Field(Of String)("Name"), _
}
当我运行它时,Double 被截断为小数点后一位,并且需要精确到小数点后两位。任何帮助是极大的赞赏。