ITPub博客

首页 > 数据库 > > Gauss 100 数据库数据类型介绍之数值类浮点型

Gauss 100 数据库数据类型介绍之数值类浮点型

作者:GaussDB_数据库 时间:2020-02-20 10:43:03 0 删除 编辑

浮点类型

Gauss100 支持基本的双精度浮点数据类型double,该类型遵循IEEE 754标准二进制浮点数算术的一般实现,外加下层处理器、操作系统和编译器对它的支持。

该数据类型是不精确的、变精度的数字类型,不精确意味着一些数值不能精确地转换成内部格式并且是以近似值存储的,因此存储后再把数据打印出来可能有一些差异。因此使用该数据类型时需要注意以下几点:

  • 如果要求精确的计算(比如金融业务),应使用Number/Decimal类型。

  • 对两个浮点数值进行比较时,可能不会得出预期的结果。

  • 在并行查询中,数据行不是按顺序读出,因此每次对含有浮点数的列求和(sum)、求均值(avg)等时,可能会得出不同的结果。

  • 特别注意,在较大浮点数加上/减去一个较小浮点数时,由于精度不够会导致结果不符。

BINARY_DOUBLE

语法:

BINARY_DOUBLE

功能:存储64位双精度浮点数。

占用空间:8字节。

取值范围:[-1.79E+308, +1.79E+308]

DOUBLE

语法:

DOUBLE

功能:

  • USE_NATIVE_DATATYPE=TRUE时映射为BINARY_DOUBLE类型。

  • USE_NATIVE_DATATYPE = FALSE时映射为NUMBER类型。

对应关键字:

  • REAL

  • DOUBLE

  • FLOAT

  • BINARY_DOUBLE

FLOAT

语法:

FLOAT

功能:

  • USE_NATIVE_DATATYPE=TRUE时映射为BINARY_DOUBLE类型。

  • USE_NATIVE_DATATYPE = FALSE时映射为NUMBER类型。

对应关键字:

  • REAL

  • DOUBLE

  • FLOAT

  • BINARY_DOUBLE

REAL

语法:

REAL

功能:

  • USE_NATIVE_DATATYPE=TRUE时映射为BINARY_DOUBLE类型。

  • USE_NATIVE_DATATYPE = FALSE时映射为NUMBER类型。

占用空间:8字节。

对应关键字:

  • REAL

  • DOUBLE

  • FLOAT

  • BINARY_DOUBLE

 说明:
  • 由于浮点数不精确,其上下界也不是一个太精确的值,因此在测试其上下界时,要特别注意。 不能直接使用select cast(1E308 as real) + 1 from dual;来测试,这是计算机底层的定义浮点数的问题,与Gauss100 OLTP的具体实现无关。

  • 对于double数据类型,若结果溢出则报错。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3134432/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19246