En MySQL, ¿cuál es el tipo de columna preferido para almacenar el precio de un producto (o monedas en general)? Google me aprendió que DECIMAL de FLOAT se usa a menudo, pero me pregunto cuál es mejor.
Estoy almacenando precios que van desde 0,01 hasta 25,00. Por supuesto, también podrían ser posibles valores más altos. (Nota: no estoy solicitando un código de pasta de copia, solo le estoy brindando más información que podría ayudarlo a obtener una respuesta más completa).
Gracias
El tipo de campo "Decimal" es bueno.
Si tiene precios más altos, puede usar,
product_price decimal(6,2) NOT NULL,
es decir, puede almacenar precios de hasta 6 dígitos con un punto decimal antes de 2 dígitos.El valor máximo para el campo
product_price decimal(6,2) NOT NULL,
almacenará el precio hasta 9999,99Si todos los precios están entre 0,01 y 25,00,
product_price decimal(4,2) NOT NULL,
será bueno, pero si tendrá precios más altos, puede establecer cualquier valor endecimal(4,2)
.fuente
No usaría float ya que puede dar errores de redondeo, ya que es un tipo de punto flotante.
Usar decimal:
ver: http://dev.mysql.com/doc/mysql/en/numeric-types.html
fuente
Prefiero INT (precio multiplicado por 100) que resuelve el problema de punto flotante en otro software.
fuente
El decimal es incorrecto porque si desea establecer el precio en 12,99 decimal, gírelo a 13,00. Así que esto es incorrecto, pero si usa float, puede guardarlo como 12,99. Entonces, la respuesta correcta es float y varchar.
fuente