# 11.1.3 定点类型(精确值) - 十进制、数字
这十进制
和数字
类型存储精确的数字数据值。当保持精确的精度很重要时使用这些类型,例如货币数据。在 MySQL 中,数字
被实现为十进制
, 所以以下关于十进制
同样适用于数字
.
MySQL 存储十进制
二进制格式的值。看第 12.25 节,“精确数学”.
在一个十进制
列声明,可以(通常是)指定精度和小数位数。例如:
salary DECIMAL(5,2)
在这个例子中,5
是精度和2
是规模。精度表示为值存储的有效位数,小数位数表示可以存储在小数点后的位数。
标准 SQL 要求小数(5,2)
能够存储任何五位数字和两位小数的值,因此可以存储在薪水
列范围从-999.99
到999.99
.
在标准 SQL 中,语法十进制(*
米*)
相当于十进制(*
米*,0)
.同样,语法十进制
相当于十进制(*
米*,0)
,其中允许实现来决定*米
.MySQL 支持这两种变体形式十进制
句法。默认值为米
*是 10。
如果比例为 0,十进制
值不包含小数点或小数部分。
最大位数十进制
是 65,但给定的实际范围十进制
列可以受给定列的精度或比例约束。当为此类列分配的值的小数点后位数超过指定比例允许的位数时,该值将转换为该比例。(确切的行为是特定于操作系统的,但通常效果是截断到允许的位数。)