Я знаю, что в Интернете есть несколько тем и сообщений, посвященных этой проблеме, и я их прочитал (не каждая статья, я должен признать), но ни одна из них не полностью удовлетворила меня.
Моя ситуация:
Я использую ODP.net (dll версия 2.111.6.0) для доступа к БД Oracle (версия 10 + 11) и DataReader для получения данных (.NET 3.5, C #).
Использование этого кода приводит к ' System.OverflowException (Арифметическая операция привела к переполнению.) '
decimal.TryParse(oraReader.GetOracleDecimal(0).Value.ToString(),
NumberStyles.Any, null, out parsedOraDecimal)
и это приводит к значению ' 3,00000000000000000000000000000000000000000000000000000000000000000000000E-126 '
decimal.TryParse(oraReader.GetOracleValue(0).ToString(),
NumberStyles.Any, null, out parsedOraDecimal)
Теперь мне нужно найти способ получить и оценить это значение правильно - БД также используется из других приложений, которые находятся вне моего контроля, поэтому изменения там невозможны.
Преобразование типов в моем коде C # из «десятичного» в «двойное» также на самом деле не вариант.
Есть идеи?