For optimum storage, you should try to use the most precise type
in all cases. For example, if an integer column is used for values
in the range from
MEDIUMINT UNSIGNED is
the best type. Of the types that represent all the required
values, this type uses the least amount of storage.
If accuracy is not too important or if speed is the highest
DOUBLE type may be
good enough. For high precision, you can always convert to a
fixed-point type stored in a
BIGINT. This enables you to do all
calculations with 64-bit integers and then convert results back to
floating-point values as necessary.