首页 > 解决方案 > 如何在蜂巢中使用填充实现四舍五入到小数点后两位?

问题描述

下面是我想在配置单元查询本身中解决的问题,而不是在 POJO 中获取数据,然后在我的下游程序中应用格式(DefaultFormatter 等)

hive> SELECT ROUND(0.605,2);
0.61
-- Result      = 0.61
-- Expectation = 0.61

hive> SELECT ROUND(0.604, 2);
0.6
--- Result      = 0.6
--- Expectation = 0.60

如何修改 select 构造,使其返回填充 2 位的小数,而不管它们的值如何。

标签: sqlhiveformattinghiveql

解决方案


您可以使用string printf(string format, Obj... args)基于Formatter的函数。

select printf('%.2f',0.604);

结果:

0.60

您不需要使用 round():

select printf('%.2f',0.605);

结果:

0.61

推荐阅读