oracle number(precision,scale)记录:
1. oracle存储数据时候用科学计数法( scientific notation)。其中一个字节用于存储指数(exponent),最多用20字节存放尾数(mantissa),也就是浮点数的有效尾数这个数字几乎是无穷大的。假设这个最大数为x,2^8-1=255,2^20-1=1048575,x=1048575*10^255=1.048575e+261)
2. oracle number数据类型用于存储整数和浮点数(fixed and floating-point),number基本上可以存储绝大多数的数字。
3. oracle不会存储前导0(leading zero)和结尾0(trailing zero)。
4. oracle number(p,s)中负小数位(s)的含义:表示从小数位向左数的第|s|位开始四舍五入
HR >create table test (id number(8,2));
Table created.
HR >insert into test values(122.333);
HR >insert into test values(122.30);
HR >select id from test; ----尽管有足够的小数位,也不会有尾0
ID
----------
122.33
122.3
HR >alter table test modify id number (8,-2); ---修改为负小数位
alter table test modify id number (8,-2)
*
ERROR at line 1:
ORA-01440: 要减小精度或标度, 则要修改的列必须为空
HR >delete from test;
1 row deleted.
HR >alter table test modify id number (8,-2);
Table altered.
HR >insert into test values(162.333);
HR >insert into test values(122.333);
HR >select id from test; ---使用负小数位四舍五入。
ID
----------
200
100
1. oracle存储数据时候用科学计数法( scientific notation)。其中一个字节用于存储指数(exponent),最多用20字节存放尾数(mantissa),也就是浮点数的有效尾数这个数字几乎是无穷大的。假设这个最大数为x,2^8-1=255,2^20-1=1048575,x=1048575*10^255=1.048575e+261)
2. oracle number数据类型用于存储整数和浮点数(fixed and floating-point),number基本上可以存储绝大多数的数字。
3. oracle不会存储前导0(leading zero)和结尾0(trailing zero)。
4. oracle number(p,s)中负小数位(s)的含义:表示从小数位向左数的第|s|位开始四舍五入
HR >create table test (id number(8,2));
Table created.
HR >insert into test values(122.333);
HR >insert into test values(122.30);
HR >select id from test; ----尽管有足够的小数位,也不会有尾0
ID
----------
122.33
122.3
HR >alter table test modify id number (8,-2); ---修改为负小数位
alter table test modify id number (8,-2)
*
ERROR at line 1:
ORA-01440: 要减小精度或标度, 则要修改的列必须为空
HR >delete from test;
1 row deleted.
HR >alter table test modify id number (8,-2);
Table altered.
HR >insert into test values(162.333);
HR >insert into test values(122.333);
HR >select id from test; ---使用负小数位四舍五入。
ID
----------
200
100