在oracle中number型別可以用來儲存0,正負定點或者浮點數,可表示的資料範圍在
1.0 * 10(-130) —— 9.9...9 * 10(125)
的數字,當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位向右的數字被捨入
補充:
number(p, s):s表示小數點後位數,p-s表示數值允許位數:
若p-s為負數,則表示小數點後第|p-s|+1位開始允許有值;
若p-s為正數,則表示小數點前(p-s)位開始允許有值。
exp:number(1,2)允許的數範圍為0.01~0.09
Oracle number資料型別
number precision,scale precision表示數字中的有效位 如果沒有指定precision的話,oracle將使用38作為精度。如果scale大於零,表示數字精確到小數點右邊的位數 scale預設設定為0 如果scale小於零,oracle將把該數字取捨到小數點左邊的指定位數...
ORACLE NUMBER丟失精度
oracle的number可以支援到38位精度。超過15位存進去,就用科學記數法表示的,而且精度丟失了。例 1234567890123456 插入後 1.23456789012346e15 123456789025587.22 插入後 123456789025587.00 補足 此處的精度丟失是,s...
Oracle NUMBER型別研究
oracle提供了強大的資料型別number,他的格式為oracle number datatype 語法 number precision scale 其中簡稱 precision p scale s number p,s 範圍 1 p 38,84 s 127 儲存資料範圍 1.0e 130 nu...