hive数字处理

一曲冷凌霜 提交于 2019-11-30 02:58:09
  1. 在hive中,两个字段做除法,如何取得想要的小数位数。
    如果非科学计数法,比如1/3,没有0,所有就不会存在科学计数法,所以如果想要取多少位,直接round(1/3,2)即可。
    如果是科学计数法,比如9/1000000001,结果中0比较多,就会存在科学计数法,这时round(9/10000000001,3)肯定是0,因为只取3位小数,四舍五入还是0,只有当你取更多位的小数时,才有可能不会四舍五入。还有有些数字即使你写了round(1/3,2)*100,按道理是整数,但是求出来的结构有可能就是带有小数的,这个地方很不解。
    一个比较明确的位数输出结果是如下结构:cast((1-t1.bad_num/t1.all_num) as decimal(10,4))*10000,这样的一定就是整数了,而且强制转换成decimal后,数据也会进行四舍五入。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!