oracle的Number(p,s)的意义

来源:互联网 发布:python的execfile 编辑:程序博客网 时间:2024/05/16 01:20

效数位:从左边第一个不为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
原创粉丝点击