2009-11-30 30 views

Respuesta

15

Como the docs dicen:

M es el número máximo de dígitos (la precisión ). Tiene un rango de 1 a 65. (Las versiones anteriores de MySQL permite un rango de 1 a 254. )

D es el número de dígitos a la derecha del punto decimal (la escala). Se tiene un rango de 0 a 30 y no debe ser más grande que M.

Así M significa máxima (número de dígitos en total), D representa decimales (número de dígitos a la derecha del punto decimal punto).

+0

Explicación muy útil, gracias por romper la relación de M y D. me estaba costando trabajo recogerlo de los documentos. – Xenology

5

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

La sintaxis de declaración para una columna decimal es DECIMAL (M, D). Los rangos de valores para los argumentos en MySQL 5.1 son los siguientes:

  • M es el número máximo de dígitos (la precisión). Tiene un rango de 1 a 65. (Las versiones anteriores de MySQL permitían un rango de 1 a 254.)
  • D es el número de dígitos a la derecha del punto decimal (la escala). Tiene un rango de 0 a 30 y debe ser mayor que M.

[Nota: el enlace anterior se ha actualizado para apuntar a los documentos de MySQL 5.7, pero el texto fue citado del MySQL 5.1 docs.]

1

El doc dice:

La sintaxis de declaración para una columna DECIMAL sigue siendo DECIMAL (M, D), aunque el rango de valores para los argumentos ha cambiado algo:

  • M es la cantidad máxima de dígitos (la precisión). Tiene un rango de 1 a 65. Esto introduce una posible incompatibilidad para aplicaciones antiguas, porque las versiones anteriores de MySQL permiten un rango de 1 a 254. (La precisión de 65 dígitos en realidad se aplica a partir de MySQL 5.0.6. Desde 5.0.3 a 5.0.5, la precisión es de 64 dígitos).

  • D es el número de dígitos a la derecha del punto decimal (la escala). Tiene un rango de 0 a 30 y debe ser mayor que M.

Cuestiones relacionadas