2010-01-29 14 views

Respuesta

12

Interesante pregunta.

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 enteros utilizados para representar valores de coma flotante. Las partes internas de las tablas de datos de JD Edwards hacen esto. Las cantidades normalmente se dividen en 10000. Aunque estoy seguro de que es más rápido y más pequeño en la tabla, simplemente significa que siempre tenemos que EFECTUAR las cifras en un valor decimal si queremos hacer algo con ellas, especialmente la división.

Desde una perspectiva de programación, siempre preferiría trabajar con decimal por precio (o money en RDBMS que lo admitan).

+1

he decidido mantenerlo simple y solo ir con el decimal –

0

Si bien le ahorraría problemas relacionados con el flotador, tener los precios guardados como números enteros podría ocasionar un problema por el que terminará cobrando 100 veces el precio a un cliente. También podría confundir a otros programadores.

He visto ambas soluciones utilizadas con éxito en sitios web de comercio electrónico de tamaño medio, pero mi preferencia es usar flotadores.

1

Creo que Decimal es bueno para este uso.

2

Los errores de punto flotante podrían causarle problemas si está multiplicando números grandes. En general, los cálculos financieros nunca deben hacerse con números de coma flotante cuando sea posible.

Cuestiones relacionadas