oracle中數據類型number(m,n)


 oracle中數據類型number(m,n)中m表示的是所有有效數字的位數,n表示的是小數位的位數。m的范圍是1-38,即最大38位。

    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

 

----------

在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位向右的數字被舍入


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM