2009-11-30 246 views

回答

15

作为the docs说:

M是数字的最大数( 精度)。它有一个范围为1至65。 (MySQL的旧版的所允许的范围 的1到254)

d是数字小数点(比例)的右侧 数。它 具有〜30的范围为0,并且必须是不 大于M.

所以M表示最大值(整体位数),d代表的位数小数(数到小数点右侧点)。

+0

非常有用的解释,谢谢你打破M和D的关系。我从文档中挑选它很困难。 – Xenology 2014-03-26 07:24:04

5

https://dev.mysql.com/doc/refman/5.7/en/precision-math-decimal-characteristics.html

用于DECIMAL列中的声明语法是DECIMAL(M,d)。 MySQL 5.1参数的值范围如下:

  • M是最大位数(精度)。它的范围是1到65.(老版本的MySQL允许范围为1到254.)
  • D是小数点右边的小数位数(小数位数)。它有30个的范围为0,并且必须是不大于M.

[注:上面的链接已被更新以指向的MySQL 5.7文档,但文本被从MySQL 5.1引述。文档]

1

doc说:

用于DECIMAL列中的声明语法保持DECIMAL(M,d),尽管值的参数的范围已经有所改变:

  • M是最大位数(精度)。它的范围是从1到65.这会导致旧应用程序可能的不兼容性,因为以前版本的MySQL的允许范围为1到254.(自MySQL 5.0.6开始,65位的精确度实际上应用。精度为64位数。)

  • D是小数点右边的小数位数(小数位数)。它有一个范围为0〜30,但不得超过M.