number
数值类型,是一种变长类型,长度为0-22字节。
存储的数值的精度可以达到38位。
number(p,s)
P和s都是可选的。
P指精度(precision),即总位数。默认情况下精度为38。精度的取值范围为1~38.
S指小数位scale
,小数点右边的位数。小数点位数的合法值为-48~127。小数位的默认值由精度来决定。
如果指定了精度,没有指定小数位,小数位默认为0(即没有小数位)。
演示
SQL>create table test_number(col_number number(6,2));
insert into test_number values(-1);
insert into test_number values(0);
insert into test_number values(1);
insert into test_number values(2);
insert into test_number values(11.00);
insert into test_number values(11.11);
insert into test_number values(1234.12);
insert into test_number values(1234.122);
insert into test_number values(1234.125);
insert into test_number values(-0.1);
insert into test_number values(-11.11);
insert into test_number values(-1234.12);
insert into test_number values(9999.99);
insert into test_number values(9998.999);
SQL>select * from test_number;
显示每行存储结构
SQL> select col_number, dump(col_number) from test_number;
number
是一个变长类型。不同的数值占用不同的空间
对小数存储时,它并没有一个小数的标志位
小数位告诉系统保留多少位小数,从哪里开始舍入。
精度从舍入的位置开始,数值中允许有多少位。