更新时间:2024-12-13 GMT+08:00
分享

浮点型

名称

描述

存储空间

取值范围

字面量

REAL

实数

32位

1.40129846432481707e-45 ~3.40282346638528860e+38,正或负

REAL

DOUBLE

双精度浮点数,15到17个有效位,具体取决于使用场景,有效位位数并不取决于小数点位置

64位

4.94065645841246544e-324 ~1.79769313486231570e+308,正或负

DOUBLE

FLOAT

单精度浮点数,6到9个有效位,具体取决于使用场景,有效位位数并不取决于小数点位置

32位

1.40129846432481707e-45 ~3.40282346638528860e+38,正或负

FLOAT

用法说明:
  • 分布式查询使用高性能硬件指令进行单精度或者双精度运算时,由于每次执行的顺序不一样,在调用聚合函数,比如SUM(),AVG(),特别是当数据规模非常大时,达到数千万甚至数十亿,其运算结果可能会略有不同。这种情况下,建议使用DECIMAL数据类型来运算。
  • 可以使用别名来指定数据类型。

    示例:

    --创建具有float类型数据的表
    CREATE TABLE float_t1 (float_col1 FLOAT) ;
    --插入具有float类型数据
    insert into float_t1 values (float '3.50282346638528862e+38');
    --查看数据
    SELECT * FROM float_t1;
    float_col1
    ------------
    Infinity
    (1 row)
    --删除表
    DROP TABLE float_t1;
  • 当小数部分为0时,可以通过cast()转为对应范围的整数处理,小数部分会四舍五入。

    示例:

    select CAST(1000.0001 as INT);
    _col0
    -------
    1000
    (1 row)
    select CAST(122.5001 as TINYINT);
    _col0
    -------
    123
    (1 row)
  • 使用指数表达式时,可以将字符串转为对应类型。
    示例:
    select CAST(152e-3 as double);
    _col0
    -------
    0.152
    (1 row)

相关文档