MapReduce服务 MRS-浮点型

时间:2023-11-01 16:25:29

浮点型

名称

描述

存储空间

取值范围

字面量

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)
support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_249011.html