如何将不同的符号浮点数转换为double?

时间:2017-12-21 08:55:57

标签: c#

我目前正在尝试将一些数字从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"}

1 个答案:

答案 0 :(得分:2)

真正的解决方案是转发decimal而不是double

var value = row["myValue"] is DBNull ? 0m : (decimal)row["myValue"];