### 11.1.3 定点类型（精确值） - 十进制、数字

这`十进制`和`数字`类型存储精确的数字数据值。当保持精确的精度很重要时使用这些类型，例如货币数据。在 MySQL 中，`数字`被实现为`十进制`, 所以以下关于`十进制`同样适用于`数字`.

MySQL 存储`十进制`二进制格式的值。看[第 12.25 节，“精确数学”](precision-math.html).

在一个`十进制`列声明，可以（通常是）指定精度和小数位数。例如：

```
salary DECIMAL(5,2)
```

在这个例子中，`5`是精度和`2`是规模。精度表示为值存储的有效位数，小数位数表示可以存储在小数点后的位数。

标准 SQL 要求`小数（5,2）`能够存储任何五位数字和两位小数的值，因此可以存储在`薪水`列范围从`-999.99`到`999.99`.

在标准 SQL 中，语法`十进制（*`米`*)`相当于`十进制（*`米`*,0)`.同样，语法`十进制`相当于`十进制（*`米`*,0)`，其中允许实现来决定*`米`*.MySQL 支持这两种变体形式`十进制`句法。默认值为*`米`*是 10。

如果比例为 0，`十进制`值不包含小数点或小数部分。

最大位数`十进制`是 65，但给定的实际范围`十进制`列可以受给定列的精度或比例约束。当为此类列分配的值的小数点后位数超过指定比例允许的位数时，该值将转换为该比例。（确切的行为是特定于操作系统的，但通常效果是截断到允许的位数。）
