codecamp

OceanBase 浮点数字

浮点数字(FLOAT-Point Numbers)可以有小数点,从第一位到最后一位,或者根本没有小数点。您可以选择在数字后使用指数来增加范围,例如 1.666 e-20。小数位数不适用于浮点数,因为小数点后可以出现的位数不受限制。

注意 
二进制浮点数与 ​NUMBER​ 的区别,在于值是由 OceanBase 数据库内部存储的。​NUMBER​ 数据类型使用十进制精度存储,所存储的数据都会精确存储。二进制浮点数(FLOAT-Point Numbers)是使用二进制精度(数字 0 和 1)存储的,这种存储值的方式不能精确地表达使用十进制精度的所有值。

语法

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

  • BINARY_FLOAT​,是一种 32 位单精度浮点数数据类型。每个 ​BINARY_FLOAT​ 值需要 4 个字节。
  • BINARY_DOUBLE,是一种 64 位双精度浮点数数据类型。每个 BINARY_DOUBLE 值需要 8 个字节。
  • 说明 
    • 在 NUMBER 列中,浮点数具有十进制精度。
    • 在 BINARY_FLOAT 或 BINARY_DOUBLE 列中,浮点数具有二进制精度。
    • 二进制浮点数暂时不支持特殊值 infinity 和 NaN。

    取值范围

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

    BINARY_FLOAT

    BINARY_DOUBLE

    最大正有限值

    3.40282E+38F

    1.79769313486231E+308

    最小正有限值

    1.17549E-38F

    2.22507485850720E-308

    更多信息

    IEEE754 符合性

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

    • 浮点数据类型在以下方面符合​ IEEE754
      • SQL 函数​ SQRT​ 实现平方根。
      • SQL 函数 ​REMAINDER​ 实现余数。
      • 算术运算符一致。
      • 比较运算符符合要求。
      • 转换运算符符合。
      • 支持默认的舍入模式。
      • 支持默认的异常处理模式。
      • OceanBase 数据库暂时不支持​INF​、​-INF​、​NaN​、​BINARY_FLOAT_NAN​、​BINARY_DOUBLE_NAN​ 之类的特殊常量。
      • SQL 函数 ​ROUND​ 、​TRUNC​ 、CEIL​和​FLOOR​提供了将二进制浮点数 ​BINARY_FLOAT、​BINARY_DOUBLE​ 舍入为整数值 ​BINARY_ FLOAT​ 和 ​BINARY_DOUBLE​ 的功能。
      • SQL 函数 ​TO_CHAR​、​TO_NUMBER​、​TO_ NCHAR​、​TO_BINARY_FLOAT​、​TO_BINARY_DOUBLE​ 和 ​CAST​ 提供了将二进制浮点数 ​BINARY_FLOAT​ 、​BINARY_DOUBLE​ 舍入为十进制数和十进制数舍入为 ​BINARY_FLOAT​ 、 ​BINARY_DOUBLE​ 的功能。
    • 浮点数据类型在以下方面不符合 IEEE754:
      • -0 被强制为 +0。
      • 不支持与NaN比较。
      • 不支持非默认的舍入模式。
      • 不支持非默认异常处理模式。



    OceanBase FLOAT 数据类型
    OceanBase 数值类型的优先级
    温馨提示
    下载编程狮App,免费阅读超1000+编程语言教程
    取消
    确定
    目录

    OceanBase 控制台指南

    OceanBase ODC 使用指南

    OceanBase Web 版 ODC

    OceanBase 客户端版 ODC

    OceanBase Connector/J 开发者指南

    OceanBase 什么是OceanBase Connector/J

    OceanBase SQL 参考(MySQL 模式)

    OceanBase SQL 参考(Oracle 模式)

    OceanBase 基本元素

    OceanBase 数据库对象

    OceanBase 函数

    OceanBase 单行函数

    OceanBase 返回数字的字符串函数

    OceanBase 通用比较函数

    OceanBase 编码解码函数

    OceanBase SQL 调优指南

    OceanBase 相关协议

    关闭

    MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }