我在使用LINQ to dataset查询时遇到了一些麻烦。我有一个问题,数据作为double返回到数据集,可能为null。当我将数据输入LINQ查询时,它会截断到一个小数位。我想知道是否有人能告诉我设置精度的最佳方法,以便它保留两位小数?我试过用'Double?'但是当我这样做时,我得到一个无效的强制转换异常。以下是我的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被截断为一个小数,并且需要具有2个小数位的精度。非常感谢任何帮助。
答案 0 :(得分:0)
也许是因为Weight属性以小数点后一位的精度对值进行舍入?我不知道还有什么可能导致这种行为...