oracle中number数据类型简单明了解释

NUMBER (p,s)
p和s范围:
p 1-38
s -84-127

number(p,s),s大于0,表示有效位最大为p,小数位最多为s,小数点右边s位置开始四舍五入,若s>p,小数点右侧至少有s-p个0填充(必须从小数点处开始并连续)。

举例:

number(2,1) 有效位最大为2,小数点后最多保留1位:
存1.115 得1.2
存1.11 的1.1
存1 得1
存0.01 得0
存11.1 得出错 有效位为3,大于2
存11 得出错 因为11等于11.0 有效位为3,大于2

number(2,4) 有效位最大为2,小数点后最多保留4位:
最大存值:0.0099,至少从小数点处开始并连续填充4-2=2个0,
如存1出错,因为1等于1.0000,有效位为5,大于2

number(p,s),s小于0,表示有效位最大为p+|s|,没有小数位,小数点左边s位置开始四舍五入,小数点左侧s位,每一位均为0。

举例:
number(2,-3) 有效位最大为2+3=5,没有小数位:
存11111 得11000,因为11111等于11111.0,从小数点左侧3位处开始四舍五入。
存11545 得12000
存11545.5 得12000,因为不存小数位,所以舍去小数位
存99999 得出错,因为四舍五入后变为,100000,有效位为6,大于5
存9999 得10000

 

这是本人觉得很简单的解释了,如需更多详细解释,请前往本人参考网址:

http://www.blogjava.net/caojianhua/archive/2011/01/24/343461.html

posted @ 2017-09-27 09:52  京魂  阅读(50012)  评论(2编辑  收藏  举报