1.number(p,s),
p:精度位,precision,是总有效数据位数,取值范围是1-38,默认是38,可以用字符*表示38。
s:小数位,scale,是小数点右边的位数,取值范围是-84~127,默认值取决于p,如果没有指定p,那么s是最大范围,如果指定了p,那么s=0。
s:小数位,scale,是小数点右边的位数,取值范围是-84~127,默认值取决于p,如果没有指定p,那么s是最大范围,如果指定了p,那么s=0。
2. number(p) ? 声明一个整数
? ? number(p,s) ?声明一个定点数
? ? number ? 声明一个浮点数
3number(p)的时候,整数位不能超过p,如果输入小数位数据库会报错,整数位最多是(p-s)s这回默认为0
3number(p)的时候,整数位不能超过p,如果输入小数位数据库会报错,整数位最多是(p-s)s这回默认为0
?
4.number(p,s) s>0且p>s?例: number(5,2), ? 整数位最多表示(p-s)位,小数位最多表示s位。如果整数位超出数据库报错,小数位超出则会自动四舍五入小数点后s位。
?
例:34.345超出小数位则数据库自动保存34.35如果是34.344则保存34.34,如果小数位数不够自动补0.
?
5.number(p,s) s>0且s=p时,例:number(5,5),这个时候的整数位只能为0,如果整数位大于0则会报错,后面小数位的处理和4一样。整数位还是(p-s),所以整数位只能为0
?
6.number(p,s) s>0且s>p时。。貌似这样怎么输都是错的。。也不知道也什么意义。。如果有知道的话,麻烦告知。
?
?
7.number(p,s)s<0 且(p>|s|,p=|s|,p<|s|都包括)时,例:number(5,-2),整数位最多 (p-s) 7位,当小数位<0时,会从小数点开始向左数|s|位 ,进行舍入,输入54123会变成54100,也可以表式9999900这样的7位数。number(5,-5)可以表式1111100000 ?number(5,-6) 可以表式11111000000.
?
总结:
? ? ?当整数位超过p-s时,oracle会报错.
? ? ?当s<=0时,如果输入小数位,oracle会报错。
? ? ?当s>0时,如果输入的小数大于s的时候,oracle会自动舍入,当输入的小数位不够的时候自动补0.