暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T 高精度数值类型DECIMAL/NUMBER

原创 章芋文 2019-09-30
3189

DECIMAL/NUMBER

语法:

NUMBER/DECIMAL

NUMBER/DECIMAL(p)

NUMBER/DECIMAL(p,s)

功能:存储高精度浮点数。

取值范围:(-1.0E128, 1.0E128)

p取值范围[1, 38],表示能存储的最大精度。

s取值[-84, 127],表示小数点后面有效数字个数。

若不指定p和s,表示不对小数点后面的数值做限制,最大能存储40位有效数字。

若不指定s或s=0时, 表示number类型没有小数部分。

占用空间:4~24字节。

对应关键字:

DECIMAL

NUMBER

NUMERIC

column_name NUMBER

此时,该列直接存储输入的值,并按最大40位有效数字存储。

column_name NUMBRE(precision, scale)

Gauss100 支持指定Number类型的精度(precision)和小数位(scale),语法格式为:

column_name NUMBRE(precision, scale)

precision表示有效数字个数,其取值范围为[1, 38],scale表示小数点右侧的数据位数,其取值范围为[-84, 127]。若scale为负数,则将小数点左边对应个数的数字约掉。

若仅指定了precision且未指定scale,则scale的默认值为0,即:column_name NUMBRE(precision),此时,scale默认为0。表示没有小数部分。

下表列举了precision和scale对Number类型存储的影响。

输入数据

NUMBER定义

存储结果

1234567.89

NUMBER

1234567.89

1234567.89

NUMBER(12,1)

1234567.9(末尾9被四舍五入)

1234567.61

NUMBER(12,1)

1234567.6

1234567.61

NUMBER(12)

1234568

1234567.61

NUMBER(12,3)

1234567.61

1234567.61

NUMBER(12,6)

错误,精度溢出

1234567.61

NUMBER(12,-2)

1234600

Decimal/Number类型采用变长存储,其长度跟其有效数字有关。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论