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