Oracle中Number(p,s)的意义

Oracle中Number(p,s)的意义

Oracle中Number(p,s)的意义

在Oracle中Number类型可以用来存储0,正负定点或者浮点数,可表示的数据范围在
  1.0 * 10(-130) —— 9.9...9 * 10(125) {38个9后边带88个0}
的数字,当Oracle中的数学表达式的值>=1.0*10(126)时,Oracle就会报错。


Number的数据声明如下:
表示                             作用                         说明
Number(p, s)        声明一个定点数        p(precision)为精度,s(scale)表示小数点右边的数字个数,精度最大值为38,scale的取值范围为-84到127
Number(p)           声明一个整数            相当于Number(p, 0)
Number               声明一个浮点数        其精度为38,要注意的是scale的值没有应用,也就是说scale的指不能简单的理解为0,或者其他的数。

定点数的精度(p)和刻度(s)遵循以下规则:
        当一个数的整数部分的长度 > p-s 时,Oracle就会报错
        当一个数的小数部分的长度 > s 时,Oracle就会舍入。
        当s(scale)为负数时,Oracle就对小数点左边的s个数字进行舍入。
        当s > p 时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错,小数点后s位向右的数字被舍入

 

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位,并四舍五入。然后检验有效数位是否<=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 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值