Apache Hive如何舍入到2位小数?

Rég*_*IOX 7 hadoop hiveql

实际上我正在寻找有关Apache Hive中sum函数的更多细节.到现在为止,我明白我可以指定点后的位数:

val DECIMAL(18, 3)
Run Code Online (Sandbox Code Playgroud)

但是我找不到的是总和时的精度等级.例如,如果我加上精度等级为3的2位小数,那么sum函数的返回值是多少?我的精确度将保留下来吗?结果将被截断或舍入?我错过了什么?

非常感谢.

Jac*_*l's 19

只需将其四舍五入到您想要的小数位数即可.

select round(SUM(150.100 + 127.0090), 2);
Run Code Online (Sandbox Code Playgroud)

以上产出将是: -

277.11
Run Code Online (Sandbox Code Playgroud)

  • 我正在使用Hive(版本1.1.0-cdh5.10.1).通过HUE尝试查询,它返回277.11000000000001.然后我通过直线尝试了它,我得到了正确的结果(277.11).即使将结果写入文件也能正常工作.我认为这是HUE UI的一个错误! (4认同)