ORACLE的Number(p,s)

本文详细解析了Oracle数据库中NUMBER数据类型的使用方法及限制条件。通过具体示例展示了不同参数设置下NUMBER类型的存储行为,帮助读者理解如何正确选择NUMBER类型的精度和规模。

转载:http://blog.youkuaiyun.com/ajaxinaction/archive/2005/12/29/565547.aspx

 

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|

比如:

代码:
  


Value     Datatype     Stored Value

123.2564    NUMBER    123.2564

1234.9876    NUMBER
(6,2)    1234.99

12345.12345    NUMBER
(6,2)    Error 出错原因 假如=12345.12,那么有效位数为7大于P=6故不符合条件

1234.9876    NUMBER
(6)    1235

12345.345    NUMBER
(5,-2)    12300

1234567    NUMBER
(5,-2)    1234600

12345678    NUMBER
(5,-2)    Error 出错原因 假如=12345600,有效位数=8>(5+|-2|)

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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值