oracle的Number(p,s)的意义

效数位:从左边第一个不为0的数算起

原文参考:
http://blog.itpub.net/post/26/3796

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值