number型別的語法很簡單:number(p,s):
p:精度位(有效數字位),precision,是總有效資料位數,取值範圍是38,預設是38,可以用字元*表示38。
s:小數字,scale,是小數點右邊的位數,取值範圍是-84~127,預設值取決於p,如果沒有指定p,那麼s是最大範圍,如果指定了p,那麼s=0。
number(p,s)表示整數字最多有p-s位有效數字(不能超過),表示有s位小數字,可以超過s位,但是小數只取s位小數字
最高整數字數=p-s
s正數,小數點右邊指定位置開始四捨五入
s負數,小數點左邊指定位置開始四捨五入
s是0或者未指定,四捨五入到最近整數
當p小於s時候,表示數字是絕對值小於1的數字,且從小數點右邊開始的前s-p位必須是0,保留s位小數。
p>0,對s分2種情況:
1. s>0
精確到小數點右邊s位,並四捨五入。然後檢驗有效數字是否<=p;如果s>p,小數點右邊至少有s-p個0填充。
2. s<0
精確到小數點左邊s位,並四捨五入。然後檢驗有效數字是否<=p+|s|
value
datatype
stored value
123.2564
number
123.2564
1234.9876
number(6,2)
1234.99
12345.12345
number(6,2)
error
1234.9876
number(6)
1235
12345.345
number(5,-2)
12300
1234567
number(5,-2)
1234600
12345678
number(5,-2)
error
123456789
number(5,-4)
123460000
1234567890
number(5,-4)
error
12345.58
number(*, 1)
12345.6
0.1number(4,5)
error
0.01234567
number(4,5)
0.01235
0.09999
number(4,5)
0.09999
0.099996
number(4,5)
error
Oracle 中Number的長度定義
number可以通過如下格式來指定 field name number precision scale 其中precision指number可以儲存的最大數字長度 不包括左右兩邊的0 scale指在小數點右邊的最大數字長度 包括左側0 也就是說,1 p是總長度,s是小數,整數部分長度是p s23 例...
oracle 中 number型別實驗
create table shentest testcol number 7 testcol2 number 7,1 testcol3 number 7,2 testcol4 number 7,1 testcol5 number 7,2 select from shentest insert int...
Oracle中如何定義NUMBER型別的長度
iamlaosong文 oracle為我們提供了number數值型別,在10g中,oracle又引入了binary float和binary double資料型別。除此之外,還有integer,smallint等資料型別,但這些型別的底層實現依然是number binary float binary...