Hive中的Float vs Double数据类型

时间:2016-03-02 18:53:53

标签: floating-point hive double

根据Hive's documentation

FLOAT(4字节单精度浮点数)

DOUBLE(8字节双精度浮点数)

4字节或8字节单精度浮点数是什么意思?

1 个答案:

答案 0 :(得分:2)

4个字节和8个字节是他们用来表示的空间。这些数字很可能以IEEE 754 single precisiondouble precision格式表示。

简而言之,浮点数字数表示为+/- d * 2 e 分别在单精度情况下,d被限制为0≤d<1。 2 24 并且在双精度情况下0≤d<2。 2 53 。请注意,即使是十进制的简单表达式(如0.1)的小数也不能在这些格式中自动表示。相反,0.1最终以单精度表示为13421773 * 2 -27 ,并且以双精度表示为3602879701896397 * 2 -55 。这些都是很好的近似,因为2 27 是134217728,2 55 是36028797018963968.双精度近似更好,并且这些都不是精确的,因为0.1永远不会写对于任何整数d和e,d * 2 e