我是靠谱客的博主 踏实诺言,最近开发中收集的这篇文章主要介绍NUMBER类型详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ORACLE NUMBER类型详解,阅读ORACLE NUMBER类型详解,1.NUMBER类型细讲:Oracle number datatype 语法:NUMBER[(precision [, scale])]简称:precision -- p scale -- sNUMBER(p, s)范围: 1 = p =38, -84 = s = 127保存数据范围:-...

 

1>.NUMBER类型细讲:
Oracle number datatype 语法:NUMBER[(precision [, scale])]
简称:precision --> p
         scale       --> s

NUMBER(p, s)
范围: 1 <= p <=38, -84 <= s <= 127
保存数据范围:-1.0e-130 <= number value < 1.0e+126  
保存在机器内部的范围: 1 ~ 22 bytes

有效位:从左边第一个不为0的数算起的位数。
s的情况:
s > 0
   精确到小数点右边s位,四舍五入。然后检验有效位是否 <= p。
s < 0
   精确到小数点左边s位,四舍五入。然后检验有效位是否 <= p + |s|。
s = 0
   此时NUMBER表示整数。

eg:
Actual Data   Specified As       Stored As
----------------------------------------------------------------------------------
123.89           NUMBER            123.89
123.89           NUMBER(3)        124
123.89           NUMBER(6,2)     123.89
123.89           NUMBER(6,1)     123.9
123.89           NUMBER(4,2)     exceeds precision (有效位为5, 5 > 4)
123.89           NUMBER(6,-2)    100
.01234           NUMBER(4,5)     .01234 (有效位为4)
.00012           NUMBER(4,5)     .00012
.000127         NUMBER(4,5)     .00013
.0000012       NUMBER(2,7)     .0000012
.00000123     NUMBER(2,7)     .0000012
1.2e-4            NUMBER(2,5)     0.00012
1.2e-5            NUMBER(2,5)     0.00001
123.2564       NUMBER            123.2564
1234.9876     NUMBER(6,2)     1234.99
12345.12345 NUMBER(6,2)     Error (有效位为5+2 > 6)
1234.9876     NUMBER(6)       1235 (s没有表示s=0)
12345.345     NUMBER(5,-2)   12300
1234567        NUMBER(5,-2)   1234600
12345678      NUMBER(5,-2)   Error (有效位为8 > 7)
123456789    NUMBER(5,-4)   123460000
1234567890  NUMBER(5,-4)   Error (有效位为10 > 9)
12345.58       NUMBER(*, 1)   12345.6
0.1                 NUMBER(4,5)    Error (0.10000, 有效位为5 > 4)
0.01234567   NUMBER(4,5)    0.01235
0.09999         NUMBER(4,5)    0.09999

 

 

2.说明:

<1>.Number(p, s)       

       声明一个定点数   p(precision)为精度,s(scale)表示小数点右边的数字个数,精度最大值为38,scale的取值范围为-84到127

<2>.Number(p)       

       声明一个整数      相当于Number(p, 0)

<3>.Number       

       声明一个浮点数   其精度为38,要注意的是scale的值没有应用,也就是说scale的指不能简单的理解为0,或者其他的数

<4>.

     //123.89          NUMBER(4,2)  错误。          因为要求:有效位是4位,小数点是2位。

                                      实际:有效位是5位,小数点是2位。

    //123.89           NUMBER(6,-2)   100 。       因为:小数点左边2位四舍五入后是100,然后100总位数是3位<=6+|-2|。

    //1234567        NUMBER(5,-2)   1234600。因为:四舍五入后是1234600,然后总位数是7<=5+|-2|。
    //12345678      NUMBER(5,-2)   Error。      因为:四舍五入后是12345700,然后总位数是8>5+|-2|。

    //1234567890  NUMBER(5,-4)   Error。      因为:四舍五入后是1234570000,总位数是10>5+|-4|。

 

    //1234.9876     NUMBER(6)       1235。      因为:四舍五入为整数是1234,有效位是4<6。

    //12345.12345 NUMBER(6,2)    Error。      因为:四舍五入后是12345.12,有效位是7>6。

    //.01234           NUMBER(4,5)    .01234。   因为:四舍五入后是.01234,有效位为4而不是5,4<=4

                                                                      因为:从左边第一个不为0的数算起的位数

    //0.1                 NUMBER(4,5)    Error。      因为:四舍五入后是0.10000(只格式化了小数点), 有效位总位数为5 > 4。

    //1.2e-4            NUMBER(2,5)    0.00012    因为:四舍五入后是0.00012,有效位是2<=2。
    //1.2e-5            NUMBER(2,5)    0.00001    因为:四舍五入后是0.00001(格式化小数点到第5位),有效位为1<2。
                                                                         

最后

以上就是踏实诺言为你收集整理的NUMBER类型详解的全部内容,希望文章能够帮你解决NUMBER类型详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部