DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]

For MySQL 5.0.3 and above:

A packed "exact" fixed-point number. M is the total number of decimal
digits (the precision) and D is the number of digits after the decimal
point (the scale). The decimal point and (for negative numbers) the `-'
sign are not counted in M. If D is 0, values have no decimal point or
fractional part. The maximum number of digits (M) for DECIMAL is 65 (64
from 5.0.3 to 5.0.5). The maximum number of supported decimals (D) is
30. If D is omitted, the default is 0. If M is omitted, the default is
10.

UNSIGNED, if specified, disallows negative values.

All basic calculations (+, -, *, /) with DECIMAL columns are done with
a precision of 65 digits.

Before MySQL 5.0.3:

An unpacked fixed-point number. Behaves like a CHAR column; "unpacked"
means the number is stored as a string, using one character for each
digit of the value. M is the total number of digits and D is the number
of digits after the decimal point. The decimal point and (for negative
numbers) the `-' sign are not counted in M, although space for them is
reserved. If D is 0, values have no decimal point or fractional part.
The maximum range of DECIMAL values is the same as for DOUBLE, but the
actual range for a given DECIMAL column may be constrained by the
choice of M and D. If D is omitted, the default is 0. If M is omitted,
the default is 10.

UNSIGNED, if specified, disallows negative values.
