Number(p,s)的意义 number(p,s)
p:1~38
s:-84~127p>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)  Error

解决方案 »

  1.   

    那一般在数据库中设置字段设成number(x,y)还是直接设成number的好?
    我现在做的项目,好多表中都有number字段,库是别人设计的,也没用过oracle,有好多number字段,而且number(x,y)中x,y都不一样,那在输入时就要验证,因为不一样,所以对每一个字段都要判断,带上参数也是很繁,想问一下各位做项目时一般number字段怎么设置的?统一成一个还是直接number,省略括号里面的?麻烦
      

  2.   

    那一般在数据库中设置字段设成number(x,y)还是直接设成number的好?
    我现在做的项目,好多表中都有number字段,库是别人设计的,也没用过oracle,有好多number字段,而且number(x,y)中x,y都不一样,那在输入时就要验证,因为不一样,所以对每一个字段都要判断,带上参数也是很繁,想问一下各位做项目时一般number字段怎么设置的?统一成一个还是直接number,省略括号里面的?麻烦
      

  3.   

    看具体需要,比如存一笔资金,有些时候 NUMBER(10,2)就足够了,你插入10.322 ORACLE自动会四舍五入的。
      

  4.   

    具体要看项目的需求来定,比如做财务项目,小数位比较固定,都只有2位,那么肯定是用number(x,y)好啊