【问题标题】:Float vs Double data type in HiveHive 中的 Float 与 Double 数据类型
【发布时间】:2016-03-02 18:53:52
【问题描述】:

根据Hive's documentation

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

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

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

【问题讨论】:

    标签: floating-point hive double


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-08-11
      • 2023-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      • 2012-01-08
      • 2018-01-02
      • 1970-01-01
      相关资源
      最近更新 更多