我有两个专栏,如下所示:
A | B
0.33 | 0.55
0.44 | 0.65
10 | 20
10.1 | 10.234
11.236 | 12.8963
12 | 30
30.5698| 35.6893
在上述列中,带小数的值应乘以100,以将其转换为整数,并且整数的格式正确,因此不应受到干扰。
使用转换后的整数,计算列之间的差值。
所以我在Hive里尝试了数学函数,比如mod函数。
但是使用这个函数,整数的差是正确的。但是小数的差别是错误的。
我不知道我哪里出错了。
我尝试了以下代码:
从样本中选择mod(b,100)-mod(a,100)
实际结果是:
A | B | C
0.33 | 0.55 | 22
0.44 | 0.65 | 21
10 | 20 | 10
10.1 | 10.234 | 13
11.236 | 12.8963| 166
12 | 30 | 18
30.5698| 35.6893| 512
1条答案
按热度按时间im9ewurl1#
a和b是什么数据类型?如果将它们定义为小数,则所有值都将具有相同的精度:
选择的结果(具有相同精度的所有数据):
选择以获取小数点的差值:
结果-小数之差:
希望能对你有所帮助。