sql - 如何在蜂巢中使用填充实现四舍五入到小数点后两位?
问题描述
下面是我想在配置单元查询本身中解决的问题,而不是在 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 位的小数,而不管它们的值如何。
解决方案
您可以使用string printf(string format, Obj... args)
基于Formatter的函数。
select printf('%.2f',0.604);
结果:
0.60
您不需要使用 round():
select printf('%.2f',0.605);
结果:
0.61
推荐阅读
- c# - 如何检查服务总线上的就绪探测?
- python - PyQT5 setRect 在 QGraphicsScene 中移动原点
- google-analytics - 谷歌分析用户 ID 视图中的活跃用户
- arrays - 从 tcl 中的数组中取消设置元素
- java - 在另一个类中实例化对象时出现 StackOverflowError
- node.js - 为什么浏览器不能存储cookies?
- ios - Flutter 应用程序在 iPhone 上启动时崩溃
- react-native - react-native-af-video-player “糟糕!播放此视频时出错,请稍后再试”
- java - 为什么我的零钱计算器不能用于硬币?
- java - Log4j ThreadContext MultiThread 不会继承