Oracle中数据类型number(p,s)中p表示所有有效数字的位数且从左数第一非零位开始,s表示小数位的位数。注:p的范围是1-38位,s的范围是-84-127位。
例如:
number(5,2)类型的数据,表示整数部分有3位(p-s)有效数字,小数部分有2位(s)有效数字,加起来最多有5位(p)有效数字。
number(4,-3)类型的数据,有效位一共4位,精确到小数点前3位。
number(4,5)类型的数据,就表示小数部分第1位(s-p)必须是0,小数部分有5位有效数字(s),共4位有效值(p)。也就是只能是这个格式0.01234最大只能是0.09999
即当 s>0时:
精确到小数点后s位,并四舍五入。再校验有效位是否满足<=p。
当 s<0时:
精确到小数点前s位,并四舍五入。再校验有效位是否满足 <= p + |s|。
当s=0时:
此时number表示整数。
当定义字段类型时,用默认number。Oracle将使用precision(p)38作为精度,scale(s)默认设置为0。
下面是例题:
