Как расширить десятичные разряды числа до минимума в Oracle PLSQL? - PullRequest
4 голосов
/ 12 июля 2011

Я не могу понять, как выбрать следующее:

123        -> 123.00000
123.12     -> 123.12000
123.123456 -> 123.123456

Я хотел бы увеличить количество десятичных знаков, например, до 5 десятичных знаков (минимум). Если там вообще нет десятичных знаковдолжно быть 5 нулей.Хорошо, если есть более 5 десятичных знаков.

SELECT ROUND(123,5) FROM DUAL;

приведет к: 123 вместо 123.00000

Число имеет точность по умолчанию.

Возможно ли этоили я должен преобразовать его в varchar с форматами чисел оракула ?

Я использую Oracle 10g с plsql.

Ответы [ 3 ]

8 голосов
/ 12 июля 2011

Вы можете использовать следующее:

SQL> SELECT X, to_char(X, 'fm99999999.00000999')
  2    FROM (SELECT 123 X FROM dual UNION ALL
  3          SELECT 123.12 FROM dual UNION ALL
  4          SELECT 123.123456 FROM dual);

         X TO_CHAR(X,'FM99999999.00000999
---------- ------------------------------
       123 123.00000
    123.12 123.12000
123.123456 123.123456
2 голосов
/ 12 июля 2011

Вам необходимо преобразовать его в Varchar следующим образом:

SELECT to_char(123, '9999.99999') from dual;
0 голосов
/ 12 июля 2011

если вы хотите отформатировать данные, вы должны использовать функцию to_char. в числовых значениях конечные нули обрезаются (они не имеют значения).

...