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

select to_char(0.1,'0.00009') nums from dual;

这是本人觉得很简单的解释了,如需更多详细解释,

请前往本人参考网址: http://www.blogjava.net/caojianhua/archive/2011/01/24/343461.html

原文地址:https://www.cnblogs.com/kliine/p/9134177.html