Interesante pregunta.
En realidad, no elegiría flotar en el entorno mysql. Demasiados problemas en el pasado con precisión con ese tipo de datos.
Para mí, la elección sería entre int
y decimal(18,4)
.
He visto ejemplos del mundo real de enteros utilizados para representar valores de punto flotante. Las partes internas de las tablas de datos de JD Edwards hacen esto. Las cantidades generalmente se dividen por 10000. Si bien estoy seguro de que es más rápido y más pequeño en la tabla, solo significa que siempre tenemos que CAST los enteros a un valor decimal si queremos hacer algo con ellos, especialmente división.
Desde una perspectiva de programación, siempre preferiría trabajar con decimal
por precio (o money
en RDBMS que lo admitan).