fixed-point-types.md 1.5 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
### 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,但给定的实际范围`十进制`列可以受给定列的精度或比例约束。当为此类列分配的值的小数点后位数超过指定比例允许的位数时,该值将转换为该比例。(确切的行为是特定于操作系统的,但通常效果是截断到允许的位数。)