This documentation is for an older version. If you're using the most current version, select the documentation for that version with the version switch in the upper right corner of the online documentation, or by downloading a newer PDF or EPUB file.

The scope of precision math for exact-value operations includes
the exact-value data types (integer and
`DECIMAL`

types) and exact-value
numeric literals. Approximate-value data types and numeric
literals are handled as floating-point numbers.

Exact-value numeric literals have an integer part or fractional
part, or both. They may be signed. Examples: `1`

,
`.2`

, `3.4`

,
`-5`

, `-6.78`

,
`+9.10`

.

Approximate-value numeric literals are represented in scientific
notation with a mantissa and exponent. Either or both parts may be
signed. Examples: `1.2E3`

,
`1.2E-3`

, `-1.2E3`

,
`-1.2E-3`

.

Two numbers that look similar may be treated differently. For
example, `2.34`

is an exact-value (fixed-point)
number, whereas `2.34E0`

is an approximate-value
(floating-point) number.

The `DECIMAL`

data type is a
fixed-point type and calculations are exact. In MySQL, the
`DECIMAL`

type has several synonyms:
`NUMERIC`

,
`DEC`

,
`FIXED`

. The integer types also are
exact-value types.

The `FLOAT`

and
`DOUBLE`

data types are
floating-point types and calculations are approximate. In MySQL,
types that are synonymous with
`FLOAT`

or
`DOUBLE`

are
`DOUBLE PRECISION`

and
`REAL`

.