“无法从十进制转换为双精度”

时间:2013-04-08 17:08:49

标签: double decimal

我试图以十进制格式将我的数据库中出现的一些数字作为一天的分数。在某些情况下,这些时间可能为空,因此我尝试使用此方法来解释它但在我的应用程序中遇到构建错误,名称:

  

“最好的重载方法匹配”system.TimeSpan.FromDays(double)'有一些无效的参数“

  

“Argument1:无法从'decimal'转换为'double'”。

有什么方法可以解决这个问题吗?

time1 = reader.IsDBNull(4) ? TimeSpan.Zero : TimeSpan.FromDays(reader.GetDecimal(4)),
time2 = reader.IsDBNull(5) ? TimeSpan.Zero : TimeSpan.FromDays(reader.GetDecimal(5)),
time3 = reader.IsDBNull(6) ? TimeSpan.Zero : TimeSpan.FromDays(reader.GetDecimal(6)),

1 个答案:

答案 0 :(得分:2)

类型decimal无法隐式转换为double。你可以明确地施展它:

time1 = 
    reader.IsDBNull(4) ? 
    TimeSpan.Zero : 
    TimeSpan.FromDays((double)reader.GetDecimal(4))

对于表示天数的数据库类型,十进制是一种不寻常的选择。我建议你确保该栏确实代表了这一点。