10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册 本手册摘录

12.25.2十进制数据类型特征

本节讨论了该部分的特征小数数据类型(及其同义词),特别考虑以下主题:

  • 最大位数

  • 存储格式

  • 存储要求

  • 的非标准MySQL扩展的上范围小数

的声明语法小数列是十进制(mD.。参数的值范围如下:

  • m是最大位数(精度)。取值范围是1 ~ 65。

  • D.是小数点右侧的数字数(比例)。它的范围为0到30,必须不大于m

如果D.省略,默认为0。如果m省略,默认为10。

最大取值为65m意味着计算小数值最多可准确到65位。这种精度65位的限制也适用于精确值数字文字,因此此类文字的最大范围与以前不同。(还有限制文本的时间小数文字可以;看第12.25.3节,“表达式处理”.)

小数列使用二进制格式存储,该格式将9个十进制数字打包成4个字节。每个值的整数部分和小数部分的存储要求分别确定。9位数字的每个倍数需要4个字节,剩余的任何数字需要4个字节的一部分。剩余数字所需的存储空间如下表所示。

剩下的数字 字节数
0. 0.
1-2 1
3 - 4 2
5 - 6 3.
7-9 4.

例如,一个小数(18、9)列的小数点两边各有9位,因此整数部分和小数部分各需要4字节。一种十进制(20,6)列有十四位数字和六位数。整数位需要四个字节为九位数和3个字节的剩余五位数字。六个小数位需要3个字节。

小数列不存储前导+字符或-性格或领导0.数字。如果你插入+ 0003.1成一个十进制(5,1)列,它存储为3.1。对于负数,一个字面-字符未存储。

小数列不允许比列定义所暗示的范围大的值。例如,一个十进制(3,0)列支持一系列-999年999。一种十进制(mD.列允许m-D.数字到小数点左侧。

SQL标准要求这种精度数字(mD.完全m数字。为了十进制(mD.,标准至少需要精确度m数字但允许更多。在mysql,十进制(mD.数字(mD.是一样的,两者都有精确的精确度m数字。

完整解释内部格式小数值,请参阅该文件字符串/ decimal.c在MySQL源代码发行版中。控件中解释了该格式(用一个示例)decimal2bin ()功能。