请问10位小数,用round函数显示不出来,请问应该如何将其显示出来呀?

[复制链接]
查看11 | 回复4 | 2007-7-8 18:54:59 | 显示全部楼层 |阅读模式
请问一字段有10位小数,用round函数显示不出来,请问应该如何将其显示出来呀?也就是oracle如何显示完整小数啊?
SQL> desc numtab
Name
Null?Type
----------------------------------------- -------- ----------------------------
NUMTAB
NOT NULL NUMBER(20,10)
SQL> insert into numtab values (10.123456789123);
1 row created.
SQL> commit;
Commit complete.
SQL> select numtab from numtab;
NUMTAB
----------
10.1234568
SQL> select round(numtab,10) from numtab;
ROUND(NUMTAB,10)
----------------
10.1234568
SQL> select round(numtab,20) from numtab;
ROUND(NUMTAB,20)
----------------
10.1234568
回复

使用道具 举报

千问 | 2007-7-8 18:54:59 | 显示全部楼层
最初由 kennic 发布
[B]请问一字段有10位小数,用round函数显示不出来,请问应该如何将其显示出来呀?也就是oracle如何显示完整小数啊?
SQL> desc numtab
Name
Null?Type
----------------------------------------- -------- ----------------------------
NUMTAB
NOT NULL NUMBER(20,10)
SQL> insert into numtab values (10.123456789123);
1 row created.
SQL> commit;
Commit complete.
SQL> select numtab from numtab;
NUMTAB
----------
10.1234568
SQL> select round(numtab,10) from numtab;
ROUND(NUMTAB,10)
----------------
10.1234568
SQL> select round(numtab,20) from numtab;
ROUND(NUMTAB,20)
----------------
10.1234568 [/B]


应该显示10.1234567891呀,但oracle就显示10.1234568
我也想不通了,看了好多文章,还是觉得不好解释
1>.NUMBER类型细讲:
Oracle number datatype 语法:NUMBER[(precision [, scale])]
简称:precision --> p
scale --> s
NUMBER(p, s)
范围: 10
精确到小数点右边s位,并四舍五入。然后检验有效位是否4)
123.89 NUMBER(6,-2)100
.01234 NUMBER(4,5) .01234 (有效位为4)
.00012 NUMBER(4,5) .00012
.000127 NUMBER(4,5) .00013
.0000012NUMBER(2,7) .0000012
.00000123 NUMBER(2,7) .0000012
1.2e-4 NUMBER(2,5) 0.00012
1.2e-5 NUMBER(2,5) 0.00001
123.2564NUMBER123.2564
1234.9876 NUMBER(6,2) 1234.99
12345.12345 NUMBER(6,2) Error (有效位为5+2 > 6)
1234.9876 NUMBER(6) 1235 (s没有表示s=0)
12345.345 NUMBER(5,-2)12300
1234567 NUMBER(5,-2)1234600
12345678NUMBER(5,-2)Error (有效位为8 > 7)
123456789 NUMBER(5,-4)123460000
1234567890NUMBER(5,-4)Error (有效位为10 > 9)
12345.58NUMBER(*, 1)12345.6
0.1 NUMBER(4,5) Error (0.10000, 有效位为5 > 4)
0.01234567NUMBER(4,5) 0.01235
0.09999 NUMBER(4,5) 0.09999
回复

使用道具 举报

千问 | 2007-7-8 18:54:59 | 显示全部楼层
lij@ORCAL>col column1 for 9999.9999999999
lij@ORCAL>select * from tt;
TTT
COLUMN1

---------- ----------------

1

1210.1234567893
这样就可以显示了
回复

使用道具 举报

千问 | 2007-7-8 18:54:59 | 显示全部楼层
SQL>select to_char('0.123456789123456789','9.999999999999999999999999999') from dual;
TO_CHAR('0.123456789123456789'
------------------------------
.123456789123456789000000000
SQL>
回复

使用道具 举报

千问 | 2007-7-8 18:54:59 | 显示全部楼层
原来是这样用啊,谢谢哇
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行