ORACLE数据类型之NUMBER详解

Oracle可以兼容多种存储数值的数据类型,如integer,number,decimal,numberic,float,double,binary_float和binary_float等,但推荐使用NUMBER类型,因为NUMBER几乎可以表示任何复杂的数值数据,也建议在数据库开发规范中明确统一使用NUMBER数据类型来表示数值。

NUMBER类型的用法如下:

定义格式NUMBER(precision,scale)

precision表示数字中的有效位(从左边第一个不为0的数算起,小数点和负号不计入有效位数),取值范围从1到38 默认38

scale表示精确到多少位,取值范围是从-84到127 默认值取决于precision,如果没有指定precision,那么s是最大范围,如果指定了precision,那么s=0

大于零时,表示数字精确到小数点右边的位数;小于零时,将把该数字取舍到小数点左边的指定位数

所以,NUMBER整数部分允许的长度为(precision- scale),无论scale是正数还是负数,

如果precision小于scale,表示存储的是没有整数的小数

关于number p s参数遵循以下规则:

当一个数的整数部分的长度> p-s 时,Oracle就会报错

当一个数的小数部分的长度> scale时,Oracle就会舍入

当scale为负数时,Oracle就对小数点左边的s个数字进行舍入

当scale> precision时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错

看一下举例:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值