OceanBase NUMBER 數(shù)據(jù)類型

2021-06-16 10:23 更新

?NUMBER? 是變長(zhǎng)、精確的數(shù)值類型,占 4~40 字節(jié)存儲(chǔ)空間,其中 4 字節(jié)存放 ?NUMBER? 的元數(shù)據(jù)信息, 36 字節(jié)存放 ?NUMBER? 的具體數(shù)值??梢源鎯?chǔ)零、浮點(diǎn)數(shù)、正的定點(diǎn)數(shù)和負(fù)的定點(diǎn)數(shù),其絕對(duì)值范圍 1.0 × 10-130 ~ 1.0 × 10126(不包括 1.0 × 10126)。如果您指定的算術(shù)表達(dá)式的絕對(duì)值大于或等于 1.0 × 10-130,OceanBase 會(huì)返回錯(cuò)誤。

?NUMBER? 數(shù)據(jù)類型具有較好的數(shù)據(jù)精確度、通用性強(qiáng)、可移植性強(qiáng),運(yùn)算效率相對(duì)浮點(diǎn)類型偏低。

語法

NUMBER [(p[s])]

參數(shù)

參數(shù)

取址范圍

說明

p

1~38

表示精度,最大有效十進(jìn)制數(shù)字,其中最高有效數(shù)字是最左邊的非零數(shù)字,最低有效數(shù)字是最右邊的已知數(shù)字。

s

-84~127

表示小數(shù)位數(shù),從小數(shù)點(diǎn)到最低有效數(shù)字的位數(shù)。比例尺范圍是 -84~127。

說明 
  • 若 s>0,精確到小數(shù)點(diǎn)右邊 s 位,四舍五入。然后檢驗(yàn)有效位是否小于等于 p。
  • 若 s<0,精確到小數(shù)點(diǎn)左邊 s 位,四舍五入。然后檢驗(yàn)有效位是否小于等于 p + |s|。
  • 若 s=0, 表示整數(shù)。
注意 
  • 小數(shù)位數(shù)正標(biāo)度是小數(shù)點(diǎn)右邊到最低有效位數(shù)(包括最低有效位數(shù))的有效位數(shù)。精度和小數(shù)位都用十進(jìn)制數(shù)字表示。
  • 小數(shù)位數(shù)負(fù)數(shù)標(biāo)度是小數(shù)點(diǎn)左邊的有效位數(shù),但不包括最低有效位數(shù)。對(duì)于負(fù)比例,最低有效數(shù)字在小數(shù)點(diǎn)的左側(cè),因?yàn)閷?shí)際數(shù)據(jù)四舍五入到小數(shù)點(diǎn)左側(cè)的指定位數(shù)。

示例

  • 示例 1: 使用以下格式指定整數(shù)。

?NUMBER(p)? 表示精度為 ?p? 且標(biāo)度為 0 的定點(diǎn)數(shù),等效于 ?NUMBER(p,0)?。

?NUMBER? 表示浮點(diǎn)數(shù),缺少精度和小數(shù)位數(shù)指示符。

  • 示例 2: 使用不同的精度和小數(shù)位數(shù)存儲(chǔ)數(shù)據(jù)。為了避免 OceanBase 存儲(chǔ)的數(shù)據(jù)超過精度,我們需要為定點(diǎn)數(shù)字列指定小數(shù)位數(shù)和精度,對(duì)輸入進(jìn)行額外的完整性檢查。但這不會(huì)強(qiáng)制固定定點(diǎn)數(shù)字列的長(zhǎng)度。若實(shí)際存儲(chǔ)的數(shù)據(jù)超過精度,則 OceanBase 會(huì)返回錯(cuò)誤。如果存儲(chǔ)的數(shù)據(jù)超過小數(shù)位數(shù),則 OceanBase 對(duì)其進(jìn)行四舍五入。

實(shí)際數(shù)據(jù)

指定為

存儲(chǔ)為

123.89

NUMBER

123.89

123.89

NUMBER(3)

124

123.89

NUMBER(3,2)

超過精度

123.89

NUMBER(4,2)

超過精度

123.89

NUMBER(5,2)

123.89

123.89

NUMBER(6,1)

123.9

123.89

NUMBER(6,-2)

100

.01234

NUMBER(4,5)

.01234

.00012

NUMBER(4,5)

.00012

.000127

NUMBER(4,5)

.00013

.000012

NUMBER(2,7)

.000012

.0000123

NUMBER(2,7)

.000012

1.2e-4

NUMBER(2,5)

.00012

1.2e-5

NUMBER(2,5)

.00001

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)