重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
还是number型。
成都创新互联专业为企业提供徐州网站建设、徐州做网站、徐州网站设计、徐州网站制作等企业网站建设、网页设计与制作、徐州企业网站模板建站服务,十余年徐州做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
参考以下定义:
number
(
precision,
scale)
precision表示数字中的有效位。如果没有指定precision的话,oracle将使用38作为精度。
scale表示数字小数点右边的位数,scale默认设置为0.
如果把scale设成负数,oracle将把该数字取舍到小数点左边的指定位数。
使用number
NUMBER
用于存储零、正数、定长负数以及浮点数。NUMBER 数据类型可以以 NUMBER(P,S)的
形式来定义数字的精度和范围。 这里:p 表示精度 (1-38),它表示存储在列中数
字的总长度是 p 位: s 表示范围,它表示小数点后的位数。该取值范围可以从-84 到 127 。例如:
CREATE TABLE test
(name number(5))
使用精度 5 来定义一个正数(如 12345)。
CREATE TABLE test
(name number(5,2))
使用精度 5 和范围 2 来定义一个数字。符合这种数据类型的数字值如 123.45 和 12.34
数据类型定义一下,例如number(p.s)
数据的总位数是p
对s分2种情况:
1. s0
精确到小数点右边s位,并四舍五入。然后检验有效数位是否=p;如果sp,小数点右边至少有s-p个0填充。
2. s0
精确到小数点左边s位,并四舍五入。然后检验有效数位是否=p+|s|
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
number(10,2)就是总共10位数,并精确到小数点后两位。希望对你有帮助。
oracle的number类型带括号时如:NUMBER(P,S),只是用来指定所存储数据的精度等制约条件的,当所存储的数据超出你预先指定的精度的时候,Oracle会给你返回一个错误。反过来说,但你不指定精度等制约条件的是时候,也就是你默认使用Oracle自身所设定的最大精度等制约条件,当然是可以用来存储负数或小数的。如下,Oracle官方文档上是这样描述的。(描述中的precision 就是上文中的P,scale就是上文中的S)
Specify a floating-point number using the following form:
NUMBER
The absence of precision and scale designators specifies the maximum range and
precision for an Oracle number.
oracle 关于数字存储的主要有下面几个:
NUMBER(P,S) 数字类型 P为整数位,S为小数位
DECIMAL(P,S) 数字类型 P为整数位,S为小数位
INTEGER 整数类型 小的整数
FLOAT 浮点数类型 NUMBER(38),双精度
REAL 实数类型 NUMBER(63),精度更高