c #: Oracle / OracleDataReader добавляет дополнительный «0» после десятичной точки, если количество запятых равно масштабу - PullRequest
0 голосов
/ 04 октября 2019

Я обнаружил странное поведение при получении данных из моей базы данных Oracle. У меня есть поле таблицы, определенное как NUMBER (20,3).

var ordinal = 100;
var decimalValue = _reader[ordinal];                    //100.1550
OracleDecimal decVal = (_reader as DataAccess.Client.OracleDataReader)?.GetOracleDecimal(ordinal);
string decString = decVal.toString();                   //100.155
Console.WriteLine(decVal.Value);                        //100.1550

При извлечении значения из OracleDataReader со значением, подобным 100.10, оно работает нормально (toString вернет 100.10). Но когда количество запятых равно шкале (3), например, 100.155, добавляется еще 0, делая значение 100.1550. В моем восприятии этот дополнительный 0 не должен быть добавлен из-за масштаба, но факт - это делает. Возможно, значение хранится в Oracle как 110.1550?

Мой вопрос: почему этот 0 добавляется, когда масштаб равен 3, и как я могу правильно извлечь это значение из базы данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...