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
> >
> > 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)    <> >
> * * *


http://blog.itpub.net/grassbell

Published At
Categories with 数据库类
comments powered by Disqus