我目前正在尝试将一些数字从DB2服务器转换为C#中的double值。
从DB2 Server获取数据不是问题,我很容易将数据导入DataTable。当我尝试将对象转换为double值时,问题就出现了,因为Notation是不同的(而不是。例如)。
因此代码:
foreach (DataRow row in DataTable myResultTable)
{
double myValue = String.IsNullOrEmpty(row["myValue"].ToString())? 0 : (double)row["myValue"]; // myValue has 1234,56 as Content.
}
失败,但无法转换该值。
db2中myValue字段的数据类型为Decimal,长度为16。
由于我没有找到任何东西,我想把它转换为字符串,然后将其转换成双字符串,然后将其转换为双精度,但这对于我来说应该很容易(对于我来说很复杂)复杂总是意味着由于某些意外事件而容易出错。
所以我的问题是:有没有简单的方法来进行这种转换?
编辑:
因为有人询问行[" myValue"]上的GetType会导致:{Name = "Decimal" FullName = "System.Decimal"}
。
答案 0 :(得分:2)
真正的解决方案是转发decimal
而不是double
:
var value = row["myValue"] is DBNull ? 0m : (decimal)row["myValue"];