DECIMAL NUMERIC

来源:互联网 发布:博易大师画横虚线源码 编辑:程序博客网 时间:2024/04/24 16:20

DECIMALNUMERIC类型在MySQL中视为相同的类型。它们用于保存必须为确切精度的值,例如货币数据。当声明该类型的列时,可以(并且通常要)指定精度和标度;例如:

salary DECIMAL(5,2)

在该例子中,5是精度,2是标度。精度表示保存值的主要位数,标度表示小数点后面可以保存的位数。

MySQL 5.1中以二进制格式保存DECIMALNUMERIC值。

标准SQL要求salary列能够用5位整数位和两位小数保存任何值。因此,在这种情况下可以保存在salary列的值的范围是从-999.99999.99

在标准SQL中,语法DECIMAL(M)等价于DECIMAL(M,0)。同样,语法DECIMAL等价于DECIMAL(M,0),可以通过计算确定M的值。在MySQL 5.1中支持DECIMALNUMERIC数据类型的变量形式。M默认值是10

DECIMALNUMERIC的最大位数是65,但具体的DECIMALNUMERIC列的实际范围受具体列的精度或标度约束。如果此类列分配的值小数点后面的位数超过指定的标度允许的范围,值被转换为该标度。(具体操作与操作系统有关,但一般结果均被截取到允许的位数)

drop table if exists test;/*==============================================================*//* Table: test                                                  *//*==============================================================*/create table test(   salary               decimal(5,2),   consume              numeric(5,3));/* salary 总共有5位,小数位占2为,整数位占3位.consume总共有5位,小数位占3为,整数位占2位.*/insert test(salary, consume) values(16.6, 56.12);select * from test;+--------+---------+| salary | consume |+--------+---------+|  16.60 |  56.120 |+--------+---------+



原创粉丝点击