我目前正在尝试将 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
not double
:
var value = row["myValue"] is DBNull ? 0m : (decimal)row["myValue"];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句