我知道互联网上有很多关于这个问题的帖子和文章,并且我已经阅读了它们(我必须承认并不是每篇都看了),但没有一个完全满足我的要求。
我的情况:
我正在使用ODP.net(dll版本为2.111.6.0)访问Oracle DB(版本为10 + 11),并使用DataReader检索数据(.NET 3.5,C#)。
使用这段代码会导致 'System.OverflowException (Arithmetic operation resulted in an overflow.)' 错误。
decimal.TryParse(oraReader.GetOracleDecimal(0).Value.ToString(),
NumberStyles.Any, null, out parsedOraDecimal)
这个结果的值为 '3,000000000000000000000000000000000000000000000000000000000E-126'。
decimal.TryParse(oraReader.GetOracleValue(0).ToString(),
NumberStyles.Any, null, out parsedOraDecimal)
现在我必须找到一种适当的方法来检索和评估这个值 - 数据库也被用于其他我无法控制的应用程序,因此不能在那里进行更改。
将我的C#代码中的类型从“decimal”转换为“double”也不是真正的选项。
有什么想法吗?