Hive 配置单元长十进制结果

Hive 配置单元长十进制结果,hive,hue,Hive,Hue,在配置单元中,当执行下面的select语句时,它将返回1.200000000002作为结果,而不是1.2 选择1.1+0.1 实际上,在存储类似的浮点值时,它在我们的配置单元表中做同样的事情,所以我想问一下这个问题。 谢谢这就是浮点运算的工作原理。如果需要精度,请将结果转换为十进制 十进制文字为浮点数提供了比双精度类型更精确的值和更大的范围。十进制数据类型存储数值的精确表示,而双精度数据类型存储非常接近的数值近似值 对于双精度非常接近的近似值不足的用例,例如金融应用程序、等式和不等式检查以及舍入

在配置单元中,当执行下面的select语句时,它将返回1.200000000002作为结果,而不是1.2

选择1.1+0.1

实际上,在存储类似的浮点值时,它在我们的配置单元表中做同样的事情,所以我想问一下这个问题。
谢谢

这就是浮点运算的工作原理。如果需要精度,请将结果转换为十进制

十进制文字为浮点数提供了比双精度类型更精确的值和更大的范围。十进制数据类型存储数值的精确表示,而双精度数据类型存储非常接近的数值近似值

对于双精度非常接近的近似值不足的用例,例如金融应用程序、等式和不等式检查以及舍入操作,需要十进制类型。对于处理大约-10308到10308或非常接近零-10-308到10-308的双精度范围之外的数字的用例,也需要它们。有关双重类型限制的一般性讨论,请参阅维基百科文章

select cast(1.1+0.1 as decimal(9,1))