Si el campo de tipo DOUBLE fue definido sin parámetros de precisión, se comporta como un FLOAT, el cual es un tipo de columna de datos de punto flotante
aproximado, y da ese tipo de resultados. En cambio, cuando le defines la precisión se comporta como un DECIMAL, y es más exacto para operaciones donde se necesite valores precisos.
El
manual de referencia recomienda, en los casos de uso contable (valores monetarios), usar DECIMAL(m,n) y no FLOAT o DOUBLE.
Si ellos lo dicen...