电脑技术学习

ORACLE NUMBER类型详解

dn001

1>.NUMBER类型细讲:
Oracle number datatype 语法:NUMBER[(precision [, scale])]
简称:precision --> p
scale;;--> s

NUMBER(p, s)
范围: 1 <= p <=38, -84 <= s <= 127
保存数据范围:-1.0e-130 <= number value < 1.0e+126
保存在机器内部的范围: 1 ~ 22 bytes

有效为:从左边第一个不为0的数算起的位数。
s的情况:
s > 0
精确到小数点右边s位,并四舍五入。然后检验有效位是否 <= p。
s < 0
精确到小数点左边s位,并四舍五入。然后检验有效位是否 <= p + |s|。
s = 0
此时NUMBER表示整数。

eg:
Actual DataSpecified As Stored As
----------------------------------------
123.89NUMBER 123.89
123.89NUMBER(3);;124
123.89NUMBER(6,2)123.89
123.89NUMBER(6,1)123.9
123.89NUMBER(4,2)exceeds precision (有效位为5, 5 > 4)
123.89NUMBER(6,-2) 100
.01234NUMBER(4,5).01234 (有效位为4)
.00012NUMBER(4,5).00012
.000127;;;;NUMBER(4,5).00013
.0000012;;;NUMBER(2,7).0000012
.00000123;;NUMBER(2,7).0000012
1.2e-4NUMBER(2,5)0.00012
1.2e-5NUMBER(2,5)0.00001
123.2564;;;NUMBER;;;;;123.2564
1234.9876;;NUMBER(6,2)1234.99
12345.12345NUMBER(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
12345678;;;NUMBER(5,-2) Error (有效位为8 > 7)
123456789;;NUMBER(5,-4) 123460000
1234567890;NUMBER(5,-4) Error (有效位为10 > 9)
12345.58;;;NUMBER(*, 1) 12345.6
0.1NUMBER(4,5)Error (0.10000, 有效位为5 > 4)
0.01234567;NUMBER(4,5)0.01235
0.09999;;;;NUMBER(4,5)0.09999