0

我在使用 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 被截断为小数点后一位,并且需要精确到小数点后两位。任何帮助是极大的赞赏。

4

1 回答 1

0

也许是因为 Weight 属性以小数点后一位的精度四舍五入该值?我不知道还有什么可能导致这种行为......

于 2009-10-14T18:05:38.527 回答