Es fundamental comprender el código correctamente antes de usarlo a tu proyecto y si tdeseas aportar algo puedes decirlo en los comentarios.
Solución:
Dado que el dinero necesita una representación exacta, no use tipos de datos que solo sean aproximados como float
. Puede usar un tipo de datos numéricos de punto fijo para eso como
decimal(15,2)
15
es la precisión (longitud total del valor, incluidos los lugares decimales)2
es el número de dígitos después del punto decimal
Ver tipos numéricos de MySQL:
Estos tipos se utilizan cuando es importante preservar la precisión exacta, por ejemplo con monetario datos.
Puedes usar DECIMAL
o NUMERIC
ambos son lo mismo
Los tipos DECIMAL y NUMERIC almacenan valores de datos numéricos exactos. Estos tipos se utilizan cuando es importante preservar la precisión exacta, por ejemplo, con datos monetarios. En MySQL, NUMERIC se implementa como DECIMAL, por lo que los siguientes comentarios sobre DECIMAL se aplican igualmente a NUMERIC. : mysql
es decirDECIMAL(10,2)
Buena lectura
prefiero usar BIGINT
y almacenar los valores en by multiplicar por 100por lo que se convertirá en entero.
Por ejemplo, para representar un valor de moneda de 93.49
el valor se almacenará como 9349
mientras mostramos el valor podemos dividir por 100 y mostrar Esto ocupará menos espacio de almacenamiento.
Precaución:
Mayormente no actuamos
currency * currency
multiplicación, en caso de que lo estemos haciendo, divida el resultado con 100 y almacene, para que vuelva a la precisión adecuada.
Reseñas y puntuaciones
Finalizando este artículo puedes encontrar las críticas de otros gestores de proyectos, tú aún puedes dejar el tuyo si te apetece.