OceanBase 数据库为浮点数提供了两种数字数据类型:
BINARY_FLOAT
,是一种 32 位单精度浮点数数据类型。每个BINARY_FLOAT
值需要 4 个字节。BINARY_DOUBLE
,是一种 64 位双精度浮点数数据类型。每个BINARY_DOUBLE
值需要 8 个字节。
- 在
NUMBER
列中,浮点数具有十进制精度。- 在
BINARY_FLOAT
或BINARY_DOUBLE
列中,浮点数具有二进制精度。
您可以根据值域范围指定浮点数。
- IEEE 标准 754-1985(IEEE754)
OceanBase 浮点数据类型的实现基本上符合电气和电子工程师协会(IEEE)的二进制浮点算法标准。
浮点数据类型在以下方面符合
IEEE754
- SQL 函数
REMAINDER
实现余数。 - 算术运算符一致。
- 比较运算符符合要求。
- 转换运算符符合。
- 支持默认的异常处理模式。
- OceanBase 暂时不支持
INF
、-INF
、NaN
、BINARY_FLOAT_NAN
、BINARY_DOUBLE_NAN
之类的特殊常量。 - SQL 函数
ROUND
、TRUNC
、CEIL
和FLOOR
提供了将二进制浮点数BINARY_FLOAT
、 舍入为整数值BINARY_ FLOAT
和BINARY_DOUBLE
的功能。 SQL 函数
TO_CHAR
、TO_NUMBER
、TO_ NCHAR
、TO_BINARY_FLOAT
、TO_BINARY_DOUBLE
和CAST
提供了将二进制浮点数BINARY_FLOAT
、BINARY_DOUBLE
舍入为十进制数和十进制数舍入为BINARY_FLOAT
、 的功能。浮点数据类型在以下方面不符合 IEEE754:
-0 被强制为 +0。
- 不支持与
NaN
比较。 - 不支持非默认异常处理模式。