浮点型
名称 |
描述 |
存储空间 |
取值范围 |
字面量 |
---|---|---|---|---|
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)
- 使用指数表达式时,可以将字符串转为对应类型。