Сегодняшняя проблема заключается в следующем: у нас есть таблица в базе данных Oracle. Таблица содержит поле типа Number (18, 3).Драйвер OOD ADO.NET возвращает десятичное число с дополнительным нулем в строчном представлении
На поверхности, как сохранение, так и загрузка данных из указанного поля работают отлично. Однако дальнейшая проверка показывает, что числа, которые содержат в себе три десятичных цифры, например, 500.001, считываются из базы данных таким образом, что строковое представление десятичной цифры имеет четвертую нулевую цифру (например, 500,0010). Кажется, это происходит всякий раз, когда третья десятичная цифра отлична от нуля.
Для математических целей это не проблема. Однако у нас есть валидаторы, которые проверяют число десятичных цифр десятичного числа, преобразовывая его в строку и затем подсчитывая количество десятичных цифр. Поскольку этот конкретный фрагмент данных имеет не более трех десятичных цифр, дополнительный нуль вызывает ошибку проверки.
Поскольку я не могу изменить валидаторы, мне остается задаться вопросом, есть ли чистый способ получить десятичное значение без дополнительного нуля, кроме преобразования числа в строку, обрезания конечных нулей, синтаксический анализ? Или я должен делать что-то совсем другое?
Это выглядит, как он будет работать, да. Я как бы надеялся, что будет волшебный способ сказать водителю, чтобы он оценил меня так, как я этого хочу, поэтому я мог бы избежать этого. Но если такой способ не появится, я, вероятно, выберу этот вариант. :-) – Rytmis