在Oracle中Number类型可以用来存储0,正负定点或者浮点数, 可表示的数据范围在+ r' S5 i0 U) o- c! S3 L5 J
1.0 * 10(-130) —— 9.9...9 * 10(125) {38个9后边带88个0}的数字,当Oracle中的数学表达式的值>=1.0*10(126)时,Oracle就会报错。
+ e# K- z: y# _ Number的数据声明如下:( k# _/ X) q+ J* v8 L F
表示作用说明& b+ p" P* w! E1 [. G. m: {
Number(p, s) 声明一个定点数 p(precision)为精度,s(scale)表示小数点右边的数字个 数,精度最大值为38,
* V' q6 c% Q1 | scale的取值范围为-84到127
0 p% n7 U% Q5 x Number(p) 声明一个整数 相当于Number(p, 0)3 c- t6 l K1 t7 h, C
Number 声明一个浮点数 其精度为38,要注意的是scale的值没有应用,也就是说scale的指不能简单的理解为0,或者其他的数。
2 R- M2 n. ^9 G3 R) p* H. I 定点数的精度(p)和刻度(s)遵循以下规则:6 t+ D" X, a7 {3 }6 H4 D
当一个数的整数部分的长度 > p-s 时,Oracle就会报错?. B4 p- A" ]4 i7 E8 f8 M' l
当一个数的小数部分的长度 > s 时,Oracle就会舍入。 r+ b9 l' r M1 u0 u+ }/ `
当s(scale)为负数时,Oracle就对小数点左边的s个数字进行舍入。
9 c& q. K9 U- ^3 k 当s > p 时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错,小数点后s位向右的数字被舍入。 |