OceanBase 数据库为浮点数提供了两种数字数据类型:

  • BINARY_FLOAT,是一种 32 位单精度浮点数数据类型。每个 BINARY_FLOAT 值需要 4 个字节。
  • BINARY_DOUBLE,是一种 64 位双精度浮点数数据类型。每个 BINARY_DOUBLE 值需要 8 个字节。
  • NUMBER 列中,浮点数具有十进制精度。
  • BINARY_FLOATBINARY_DOUBLE 列中,浮点数具有二进制精度。

您可以根据值域范围指定浮点数。

  • IEEE 标准 754-1985(IEEE754)

OceanBase 浮点数据类型的实现基本上符合电气和电子工程师协会(IEEE)的二进制浮点算法标准。

  • 浮点数据类型在以下方面符合 IEEE754

  • SQL 函数 REMAINDER 实现余数。
  • 算术运算符一致。
  • 比较运算符符合要求。
  • 转换运算符符合。
  • 支持默认的异常处理模式。
  • OceanBase 暂时不支持 INF-INFNaNBINARY_FLOAT_NANBINARY_DOUBLE_NAN 之类的特殊常量。
  • SQL 函数 ROUNDTRUNCCEILFLOOR 提供了将二进制浮点数 BINARY_FLOAT 、 舍入为整数值 BINARY_ FLOATBINARY_DOUBLE 的功能。
  • SQL 函数 TO_CHARTO_NUMBERTO_ NCHARTO_BINARY_FLOATTO_BINARY_DOUBLECAST 提供了将二进制浮点数 BINARY_FLOATBINARY_DOUBLE 舍入为十进制数和十进制数舍入为 BINARY_FLOAT 、 的功能。

  • 浮点数据类型在以下方面不符合 IEEE754:

  • -0 被强制为 +0。

  • 不支持与 NaN 比较。
  • 不支持非默认异常处理模式。