Oracle Float型別


本教學將向您介紹Oracle FLOAT資料型別,並演示如何將FLOAT型別應用於表定義浮點數的欄位(列)。

 Oracle FLOAT資料型別介紹

Oracle FLOAT資料型別是NUMBER資料型別的子型別。 其主要目的是促進與ANSI SQL FLOAT資料型別的相容。

以下顯示FLOAT資料型別的語法:

FLOAT(p)

我們只能指定FLOAT資料型別的精度。不能指定尺度,因為Oracle資料庫從資料中解析尺度的。 FLOAT的最大精度是126

FLOAT中,精度是二進位制位,而在NUMBER中精度是十進位制數。可以使用以下公式在二進位制和十進位制精度之間進行轉換:

P(d) = 0.30103 * P(b)

根據這個公式,因二進位制精度的最大126位數,大致等於十進位制數位數的38位數。

為了使它與SQL ANSI FLOAT相容,Oracle提供了一些別名,如下表所示:

ANSI SQL FLOAT Oracle FLOAT
FLOAT FLOAT(126)
REAL FLOAT(63)
DOUBLE PRECISION FLOAT(126)

例如,不使用FLOAT(63)資料型別,可以使用REAL別名代替。

Oracle FLOAT範例

首先,為了方便演示,這裡建立一個名為float_demo的新表:

CREATE TABLE float_demo (
    f1 FLOAT(1),
    f2 FLOAT(4),
    f3 FLOAT(7)
);

其次,向float_demo表中插入一個新行:

INSERT
    INTO
        float_demo(
            f1,
            f2,
            f3
        )
    VALUES(
        1 / 3,
        1 / 3,
        1 / 3
    );

第三,從float_demo表中查詢資料:

SELECT
    *
FROM
    float_demo;

執行上面查詢語句,得到以下結果 -

在這個例子中,列f1f2f3的資料型別是FLOAT(1)FLOAT(4)FLOAT(7)。 因此,列f1f2f3的相應精度為1(1 * 0.30103)2(4 * 0.30103)3(7 * 0.30103)

在本教學中,您已經了解了Oracle FLOAT資料型別以及如何將其應用於定義表的浮點數的列列。