SQL之DECIMAL函数

DECIMAL 数据类型

DECIMAL 数据类型是总位数为 precision 且小数点后位数为 scale 的小数。
[折叠/展开部分] 语法

DECIMAL [ ( precision [ , scale ] ) ]

[折叠/展开部分] 参数

precision   一个在 1 到 127 范围内(含 1 和 127)的整数表达式,指定表达式中的位数。缺省设置为 30。

scale   一个在 0 到 127 范围内(含 1 和 127)的整数表达式,指定小数点后的位数。小数位数值应始终小于或等于精度值。缺省设置为 6。

可以通过设置数据库选项更改缺省值。

[折叠/展开部分] 注释

DECIMAL 数据类型是精确数字数据类型,其精度在算术运算后保留到最小有效位。

存储小数所需的空间可通过如下方式计算

2 + int( (before + 1)/2 ) + int( (after + 1)/2 )

函数 int 用于将其参数取整,而 before 和 after 分别是小数点之前和之后的有效位数。存储基于的是所存储的值,而不是列中允许的最大精度和小数位数。

也可以将 DECIMAL 指定为 DEC。无论使用哪种语法,都会将数据类型描述为 DECIMAL。

如果正在使用的精度是 20 或更少,正在使用的小数位数是 0,则可以改用整数数据类型(BIGINT、INTEGER、SMALLINT 或 TINYINT)之一。与具有类似有效位数的 NUMERIC 和 DECIMAL 值相比,整数值需要较少的存储空间。对整数值(例如读取或插入)和算术运算符执行的操作,通常优于对 NUMERIC 和 DECIMAL 值执行的操作。

DECIMAL 在语义上等同于 NUMERIC。

注意:如果创建 DECIMAL 数据类型的列或变量,而且其精度或小数位数超过为数据库设置的精度和小数位数,则会按照数据库设置截断这些值。因此,如果发现在定义为 DECIMAL 的列或变量中的值被截断,需检查精度和小数位数使其不超过数据库选项设置。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值