何勇生:Oracle中NUMBER类型问题
王惠心的回答:
在Oracle中Number类型可以用来存储0,正负定点或者浮点数,可表示的数据范围在 1.0 * 10(-130) —— 9.9...9 * 10(125) {38个9后边带88个0} 的数字,当Oracle中的数学表达式的值>=1.0*10(126)时,Oracle就会报错。 Number的数据声明如下: 表示 作用 说明 Number(p, s) 声明一个定点数 p(precision)为精度,s(scale)表示小数点右边的数字个数,精度最大值为38,scale的取值范围为-84到127 Number(p) 声明一个整数 相当于Number(p, 0) Number 声明一个浮点数 其精度为38,要注意的是scale的值没有应用,也就是说scale的指不能简单的理解为0,或者其他的数。 定点数的精度(p)和刻度(s)遵循以下规则: ? 当一个数的整数部分的长度 > p-s 时,Oracle就会报错 ? 当一个数的小数部分的长度 > s 时,Oracle就会舍入。 ? 当s(scale)为负数时,Oracle就对小数点左边的s个数字进行舍入。 ? 当s > p 时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错,小数点后s位向右的数字被舍入
张小华的回答:
在Oracle中Number类型可以用来存储0,正负定点或者浮点数,可表示的数据范围在 1.0 * 10(-130) —— 9.9...9 * 10(125) {38个9后边带88个0} 的数字,当Oracle中的数学表达式的值>=1.0*10(126)时,Oracle就会报错。 Number的数据声明如下: 表示 作用 说明 Number(p, s) 声明一个定点数 p(precision)为精度,s(scale)表示小数点右边的数字个数,精度最大值为38,scale的取值范围为-84到127 Number(p) 声明一个整数 相当于Number(p, 0) Number 声明一个浮点数 其精度为38,要注意的是scale的值没有应用,也就是说scale的指不能简单的理解为0,或者其他的数。 定点数的精度(p)和刻度(s)遵循以下规则: ? 当一个数的整数部分的长度 > p-s 时,Oracle就会报错 ? 当一个数的小数部分的长度 > s 时,Oracle就会舍入。 ? 当s(scale)为负数时,Oracle就对小数点左边的s个数字进行舍入。 ? 当s > p 时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错,小数点后s位向右的数字被舍入
帅嘟嘟的逗霸静嘟嘟的绽i的回答:
相当于java的int double类型 oracle包括三种数据类型: 1)数值:number或number(p,s) p:精度,s:刻度(小数位数) 1234.567 number(6,2) --------> 1234.57 0.001234 number(2,4) --------> 0.0012 1234 number(3,-1)--------> 1230 1204 number(3) --------> 超出精度 2)字符:char, varchar, varchar2 char与varchar的区别: 1.内容存储时占用的存储空间; 定长:char (声明固定长度) 'a' -> char(10) -> 10 'ab' -> char(10) -> 10 变长:varchar (根据实际存储的长度为准) 'a' -> varchar(10) -> 1 'ab' -> varchar(10) -> 2 2.所允许存储的最大长度; char: 2000 varchar: 4000 varchar与varchar2的区别: 1.制定厂商不同: varchar:ansi varchar2:oracle 2.承诺不同; 3)日期:date '01-jan-08' 世纪,年,月,日,时,分,秒