【发布时间】:2016-07-07 03:35:49
【问题描述】:
我知道我可以做到:
Dim Amount As Double = CDbl(DGVRow.Cells("Amount").Value)
但我的 DGV 单元已经是 Double,所以我无需转换即可获得他的价值。
我已经尝试了下面的代码(但它不是正确的语法)
Dim Amount As Double = DGVRow.Cells.OfType(Of Double)("Amount").Value
【问题讨论】:
-
由于列/单元格需要能够包含任何内容,因此它返回
Object,这意味着您的值被装箱。如果您有数据源,您可以做很多您要求的事情:Dim d = dt.Rows(n).Field(Of Double)("Amount")。仍然有一个转换,只是一种不同的类型。不过,对于货币类型值来说,十进制会是更好的选择 -
@Plutonix 否。在这种情况下,我没有将数据表设置为源。我选择'Double'是因为我必须使用'Double'进行计算,而且我不需要极高的精度。无论如何,感谢您的宝贵提示;)
-
特别是如果是钱并且有计算,
Decimal是更好的选择。它可以防止舍入错误 - 请参阅 stackoverflow.com/q/1165761 和 stackoverflow.com/q/890100
标签: vb.net datagridview