number(p,s)
p:1~38
s:-84~127
p>0,对s分2种情况分析:
1. s>0
精确到小数点右边s位,并四舍五入。然后检验有效数位是否<=p;如果s>p,小数点右边至少有s-p个0填充。
2. s<0
精确到小数点左边
s
+1位,并四舍五入。然后检验有效数位是否<=p+
s
(有效数位:从左边第一个不为0的数算起)
Value
Datatype
Stored Value
123.2564
NUMBER
123.2564
1234.9876
NUMBER(6,2)
1234.99
12345.12345
NUMBER(6,2)
Error
1234.9876
NUMBER(6)
1235
12345.345
NUMBER(5,-2)
12300
1234567
NUMBER(5,-2)
1234600
12345678
NUMBER(5,-2)
Error
123456789
NUMBER(5,-4)
123460000
1234567890
NUMBER(5,-4)
Error
12345.58
NUMBER(*, 1)
12345.6
0.1
NUMBER(4,5)
Error
0.01234567
NUMBER(4,5)
0.01235
0.09999
NUMBER(4,5)
0.09999
0.099996
NUMBER(4,5)
Error
Actual Data Specified As Stored As
----------------------------------------
123.89 NUMBER 123.89
123.89 NUMBER(3) 124
123.89 NUMBER(6,2) 123.89
123.89 NUMBER(6,1) 123.9
123.89 NUMBER(4,2) exceeds precision (有效位为5, 5 >
4)
123.89 NUMBER(6,-2) 100
.01234 NUMBER(4,5) .01234 (有效位为4)
.00012 NUMBER(4,5) .00012
.000127 NUMBER(4,5) .00013
.0000012 NUMBER(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.2564 NUMBER 123.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
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.1 NUMBER(4,5) Error (0.10000, 有效位为5 > 4)
0.01234567 NUMBER(4,5) 0.01235
0.09999 NUMBER(4,5) 0.09999