如何在Oracle PLSQL中将数字的小数位数扩展到最小?

时间:2011-07-12 09:39:18

标签: sql oracle plsql formatting numbers

我无法弄清楚如何选择以下内容:

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

我想将小数位数扩展为例如5位小数(最小值) 如果根本没有小数位,则应该有5个零。 如果小数超过5位,则可以。

SELECT ROUND(123,5) FROM DUAL;

将导致:123 而不是123.00000

该数字具有默认精度。

这是可能的,还是应该将其转换为oracle number formats

的varchar?

我正在使用带有plsql的Oracle 10g。

3 个答案:

答案 0 :(得分:8)

您可以使用以下内容:

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

答案 1 :(得分:2)

您需要将其转换为Varchar,如下所示:

SELECT to_char(123, '9999.99999') from dual;

答案 2 :(得分:0)

如果要格式化数据,则必须使用to_char函数。在数字值中,尾随零被截断(它们无关紧要)。