[英]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.