我正在尝试使用Hive SQL添加两个数字。
select 4.6 + 3.1 from <table> => 7.699999999999999
但是,
select 4.7 +3.2 from <table> => 7.9
我理解结果的舍入会给出预期的输出,但问题是为什么这种不同的行为在第一位?
我正在使用Apache spark 1.6.2的hive 2.11(hive context)。
答案 0 :(得分:1)
您所观察到的并非特定于Hive。例如:
Python 2.7.10 (default, Oct 23 2015, 19:19:21)
>>> 4.7+3.2
7.9
>>> 4.6+3.1
7.699999999999999
它与双数如何以某些语言(浮点)存储在内存中有关: https://en.wikipedia.org/wiki/Floating_point#Internal_representation
另见: