### 12.25.2 十进制数据类型特征 本节讨论的特点[`十进制`](fixed-point-types.html)数据类型(及其同义词),尤其是以下主题: - 最大位数 - 存储格式 - 存储要求 - 对上限范围的非标准 MySQL 扩展[`十进制`](fixed-point-types.html)列 a 的声明语法[`十进制`](fixed-point-types.html)列是`十进制(*`米`*,*`D`*)`.参数的取值范围如下: - *`米`*是最大位数(精度)。它的范围是 1 到 65。 - *`D`*是小数点右侧的位数(刻度)。它的范围为 0 到 30,并且不得大于*`米`*. 如果*`D`*如果省略,则默认值为0。如果*`M`*省略,默认值为10。 最大值为65*`M`*这意味着[`十进制的`](fixed-point-types.html)数值精确到65位。65位精度的限制也适用于精确值数字文字,因此此类文字的最大范围与以前不同。(对文本的长度也有限制。)[`十进制的`](fixed-point-types.html)文字可以是;看见[第12.25.3节“表达式处理”](precision-math-expressions.html).) 价值观[`十进制的`](fixed-point-types.html)列使用二进制格式存储,该格式将9个十进制数字压缩为4个字节。每个值的整数部分和小数部分的存储要求分别确定。九位数的每一个倍数需要4个字节,剩余的任何数字都需要4字节的一小部分。下表给出了剩余数字所需的存储空间。 | 剩余数字 | 字节数 | | ---- | --- | | 0 | 0 | | 1–2 | 1. | | 3–4 | 2. | | 5–6 | 3. | | 7–9 | 4. | 例如,一个`十进制(18,9)`列的小数点两侧各有九位数字,因此整数部分和小数部分各需要4个字节。A.`十进制(20,6)`列有14个整数和6个小数。整数位数要求其中九位使用四个字节,其余五位使用三个字节。6个小数位数需要3个字节。 [`十进制的`](fixed-point-types.html)列不存储前导字符`+`性格还是`-`角色还是主角`0`数字。如果你插入`+0003.1`变成一个`十进制(5,1)`列,它存储为`3.1`.对于负数,一个字面值`-`字符不被存储。 [`十进制的`](fixed-point-types.html)列不允许值大于列定义所暗示的范围。例如,一个`十进制(3,0)`列支持一系列`-999`到`999`A.`小数点(*`M`*,*`D`*)`柱允许高达*`M`* - *`D`*小数点左边的数字。 SQL标准要求`数字的(*`M`*,*`D`*)`是*确切地* *`M`*数字。对于`小数点(*`M`*,*`D`*)`,该标准要求精度至少为*`M`*数字,但允许更多。在MySQL中,`小数点(*`M`*,*`D`*)`和`数字的(*`M`*,*`D`*)`都是一样的,两者的精度都是*`M`*数字。 完整解释`十进制的`值,请参阅该文件`字符串/小数。C`在MySQL源代码发行版中。该格式在`小数点2bin()`作用