繁体   English   中英

如何将不同的表示法浮点数转换为double?

[英]How to transform a different notation floating point number to double?

我当前正在尝试将一些数字从DB2服务器转换为C#中的双精度值。

从DB2服务器获取数据不是问题,而且我很容易将数据获取到DataTable中。 然后,当我尝试将对象转换为双精度值时,问题就来了,因为符号不同(例如,而不是。)。

因此代码:

 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。

由于没有找到任何东西,我考虑过将其转换为字符串,在那里进行格式化,然后将其转换为双精度,但这似乎相当……。对于我来说,这很简单,因为它应该很容易(而且复杂总是意味着容易由于意外而导致的错误)。

所以我的问题是:是否有任何简单的方法可以完成此转换?

编辑:由于要求在row [“ myValue”]上获取GetType导致: {Name = "Decimal" FullName = "System.Decimal"}

真正的解决方案是强制转换为decimal而不是double

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM