新聞中心
?FLOAT? 數(shù)據(jù)類型是具有精度(precision)的 ?NUMBER? 數(shù)據(jù)類型的子類型,需要占 4~40 字節(jié)存儲空間。它的精度是按二進(jìn)制有效位數(shù)計(jì)算的,范圍為 1~126,小數(shù)位數(shù)不可自定義。?FLOAT? 類型為變長、非精確數(shù)值類型。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、正陽網(wǎng)站維護(hù)、網(wǎng)站推廣。
語法
FLOAT [(p)]
參數(shù)
|
參數(shù) |
定義 |
范圍 |
說明 |
|---|---|---|---|
|
p |
精度 |
1~126 |
定義數(shù)值精度,按二進(jìn)制有效位數(shù)計(jì)算,轉(zhuǎn)換為十進(jìn)制精度要乘以 0.30103。 |
說明
- 二進(jìn)制精度轉(zhuǎn)換為十進(jìn)制精度的換算關(guān)系: ?
十進(jìn)制精度 = int(二進(jìn)制精度 x 0.30103)?。
- 十進(jìn)制精度轉(zhuǎn)換為二進(jìn)制精度的換算關(guān)系: ?
二進(jìn)制精度 = int(十進(jìn)制精度 x 3.32193)?。
示例
- 示例 1: 使用 FLOAT 設(shè)置二進(jìn)制精度為 2,轉(zhuǎn)換為十進(jìn)制精度 int(2 x 0.30103) = 0.6,結(jié)果向下取整,則 FLOAT(2) 的十進(jìn)制精度為 0。
FLOAT(2)
- 示例 2:創(chuàng)建 test 表,并向里面插入數(shù)據(jù)。其中 col1 列是 NUMBER 類型,col2 列是?
FLOAT? 類型。?NUMBER(5,2)? 表示十進(jìn)制精度的定點(diǎn)數(shù),有效位數(shù)為 5,結(jié)果保留小數(shù)點(diǎn)后 2 位。FLOAT(5) 的二進(jìn)制精度為 5,轉(zhuǎn)換為十進(jìn)制精度為?int(5 x 0.30103) = 1.50515?,向下取整后十進(jìn)制精度為 1。如 123.45 用科學(xué)計(jì)數(shù)法表示為 1.2345 x 102,1.2345 小數(shù)點(diǎn)后保留 1 位,四舍五入變?yōu)?1.2,最后顯示為 1.2 x 102 = 120。執(zhí)行以下語句:
CREATE TABLE test (col1 NUMBER(5,2), col2 FLOAT(5));
INSERT INTO test VALUES (1.23, 1.23);
INSERT INTO test VALUES (7.89, 7.89);
INSERT INTO test VALUES (12.79, 12.79);
INSERT INTO test VALUES (123.45, 123.45);
執(zhí)行 SELECT 語句查看 test 表,返回結(jié)果如下:
obclient> SELECT * FROM test;
+--------+------+
| COL1 | COL2 |
+--------+------+
| 1.23 | 1.2 |
| 7.89 | 7.9 |
| 12.79 | 13 |
| 123.45 | 120 |
+--------+------+
4 rows in set (0.00 sec)
說明
當(dāng)轉(zhuǎn)換 ?
ANSI FLOAT? 數(shù)據(jù)時(shí),您可以使用 OceanBase 數(shù)據(jù)庫內(nèi)部使用的 ?
FLOAT? 數(shù)據(jù)類型。但是建議您改用 ?
BINARY_FLOAT? 和 ?
BINARY_DOUBLE? 浮點(diǎn)數(shù)字。
名稱欄目:創(chuàng)新互聯(lián)OceanBase教程:OceanBaseFLOAT數(shù)據(jù)類型
轉(zhuǎn)載來源:http://m.fisionsoft.com.cn/article/cddhioh.html


咨詢
建站咨詢
