1.简介
一个可变长度的数据类型,使用四舍五入实现;
既可以存储整数,也可以存储小数;
2.使用语法
(1)可指定两个参数:
p : 精度位precision,数据的有效位;取值范围38;默认38;*表示38
s : 小数位scale,小数点右边的位数;取值范围-84~127;
默认:未指定p,默认s为最大范围;指定了p,默认s=0;
number s为最大范围
number(p) == number(p,0),声明的是一个整数
number(p,s)
(2)最高整数位数=p-s
s正数,精确到小数点右边s位,四舍五入;
s负数,精确到小数点左边s位,四舍五入;
s是0或者未指定,四舍五入到最近整数;
(3)当一个数的整数部分的长度 > p-s 时,Oracle就会报错
(4)number类型的p和s,与其底层存储完全没有关系,根本不会影响数据在磁盘上如何存储,它只会影响允许哪些值以及数值如何舍入,你可以认为其是对数据的“编辑”。
3.使用参照表
实际值 | 数据类型 | 存储值 |
1234567.89 | Number | 1234567.89 |
1234567.89 | Number(8) | 1234567 |
1234567.89 | Number(6) | 出错 |
1234567.89 | Number(9,1) | 1234567.9 |
1234567.89 | Number(9,3) | 出错 |
1234567.89 | Number(7,2) | 出错 |
1234567.89 | Number(5,-2) | 1234600 |
1234511.89 | Number(5,-2) | 1234500 |
1234567.89 | Number(5,-4) | 1230000 |
1234567.89 | Number(*,1) | 1234567.9 |
0.012 | Number(2,3) | 0.012 |
0.23 | Number(2,3) | 出错 |