Number literals include exact-value (integer and
`DECIMAL`

) literals and
approximate-value (floating-point) literals.

Integers are represented as a sequence of digits. Numbers may
include “`.`

” as a decimal
separator. Numbers may be preceded by
“`-`

” or
“`+`

” to indicate a negative or
positive value, respectively. Numbers represented in scientific
notation with a mantissa and exponent are approximate-value
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. For more information about exact-value
calculations, see Section 12.18, “Precision Math”.

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`

.

An integer may be used in a floating-point context; it is interpreted as the equivalent floating-point number.