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 '1' to '99999', 'MEDIUMINT UNSIGNED' is the best type. Of the types that represent all the required values, this type uses the least amount of storage.
All basic calculations ('+', '-', '', and '/') with note 'DECIMAL': fixed-point-types. columns are done with precision of 65 decimal (base 10) digits. See *note numeric-type-syntax::.
If accuracy is not too important or if speed is the highest priority, the note 'DOUBLE': floating-point-types. type may be good enough. For high precision, you can always convert to a fixed-point type stored in a note 'BIGINT': integer-types. This enables you to do all calculations with 64-bit integers and then convert results back to floating-point values as necessary.
File: manual.info.tmp, Node: other-vendor-data-types, Prev: choosing-types, Up: data-types