数据仓库服务 GAUSSDB(DWS)-数值类型:浮点类型

时间:2023-11-10 17:34:12

浮点类型

浮点类型属于非精确,可变精度的数值类型。实际上,这些类型通常是对于二进制浮点算术(分别是单精度和双精度)的IEEE标准754的具体实现,在一定范围内由特定的处理器,操作系统和编译器所支持。

表3 浮点类型

名称

描述

存储空间

范围

REAL,

FLOAT4

单精度浮点数,不精准。

4字节

6位十进制数字精度。

DOUBLE PRECISION,

FLOAT8

双精度浮点数,不精准。

8字节

1E-307~1E+308,

15位十进制数字精度。

FLOAT[(p)]

浮点数,不精准。精度p取值范围为[1,53]。

说明:

p为精度,表示总位数。

4字节或8字节

根据精度p不同选择REAL或DOUBLE PRECISION作为内部表示。如不指定精度,内部用DOUBLE PRECISION表示。

BINARY_DOUBLE

是DOUBLE PRECISION的别名,为兼容Oracle类型。

8字节

1E-307~1E+308,

15位十进制数字精度。

DEC[(p[,s])]

精度p取值范围为[1,1000],标度s取值范围为[0,p]。

说明:

p为总位数,s为小数位位数。

用户声明精度。每四位(十进制位)占用两个字节,然后在整个数据上加上八个字节的额外开销。

未指定精度的情况下,小数点前最大131,072位,小数点后最大16,383位。

INTEGER[(p[,s])]

精度p取值范围为[1,1000],标度s取值范围为[0,p]。

用户声明精度。每四位(十进制位)占用两个字节,然后在整个数据上加上八个字节的额外开销。

未指定精度的情况下,小数点前最大131,072位,小数点后最大16,383位。

示例:

创建带有浮点类型的表。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
CREATE TABLE float_type_t2 
(
    FT_COL1 INTEGER,
    FT_COL2 FLOAT4,
    FT_COL3 FLOAT8,
    FT_COL4 FLOAT(3),
    FT_COL5 BINARY_DOUBLE,
    FT_COL6 DECIMAL(10,4),
    FT_COL7 INTEGER(6,3)
) DISTRIBUTE BY HASH ( ft_col1);

插入数据。

1
INSERT INTO float_type_t2 VALUES(10,10.365456,123456.1234,10.3214, 321.321, 123.123654, 123.123654);

查看数据。

1
2
3
4
5
SELECT * FROM float_type_t2;
 ft_col1 | ft_col2 |   ft_col3   | ft_col4 | ft_col5 | ft_col6  | ft_col7 
---------+---------+-------------+---------+---------+----------+---------
      10 | 10.3655 | 123456.1234 | 10.3214 | 321.321 | 123.1237 | 123.124
(1 row)
support.huaweicloud.com/sqlreference-dws/dws_06_0009.html