本文主要是介绍impala使用round函数保留小数失效,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题描述如标题所示
1.理论情况:
round()函数,是用来做四舍五入的,比如:select round(2.126,2)
结果为:2.13
2.异常情况:
但是有时候会出现一些意料之外的情况,比如:select round(1/3,3)
结果为:0.33300000000000002正确的应该是:0.333
- 截图效果示例如下:
3.解决办法:
问题原因在于round处理数据貌似是基于2进制方式。具体后续再补充。
有效解决方案:select round(cast(1/3 as decimal(8,4)),3)
现在的结果:0.333
4.其他问题
Caused by: org.apache.hadoop.hive.metastore.api.MetaException: java.lang.
这篇关于impala使用round函数保留小数失效的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!