Oracle中的number型別

2021-06-21 00:31:07 字數 1377 閱讀 9061

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...