值为0时的转换错误浮点到双精度

时间:2013-07-24 14:56:44

标签: c# variables dataset sqldatatypes

只要数据库中的价格值为0.0,下面的C#代码就会给我一个Casting错误。字段类型是它正在读取它的数据库中的一个浮点数。有谁知道这个问题?

double decPrice = (double)dsqry2.Tables[0].Rows[intCountOrders]["Price"];

3 个答案:

答案 0 :(得分:0)

使用Convert.ToDouble代替投射。

double decPrice = Convert.ToDouble(dsqry2.Tables[0].Rows[intCountOrders]["Price"]);

答案 1 :(得分:0)

我最喜欢和最安全的解决方案很简单:

var x = dsqry2.Tables[0].Rows[intCountOrders]["Price"];
var decPrice = x is double ? (double)x : 0;

答案 2 :(得分:0)

尝试

dsqry2.Tables[0].Rows[intCountOrders].Field<double>("Price")