Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

trabajar con separadores de Miles y decimales

Estas en el tema de trabajar con separadores de Miles y decimales en el foro de Mysql en Foros del Web. Buenas =) tengo un problemita, cargo en mi base de datos un precio que lleva separador de miles (".") y separador de decimales (","), pero ...
  #1 (permalink)  
Antiguo 08/10/2009, 14:43
 
Fecha de Ingreso: julio-2009
Ubicación: Argentina!
Mensajes: 324
Antigüedad: 14 años, 8 meses
Puntos: 4
trabajar con separadores de Miles y decimales

Buenas =)

tengo un problemita, cargo en mi base de datos un precio que lleva separador de miles (".") y separador de decimales (","), pero cuando los guarda me pone cualquier cosa, si por ejemplo, ingreso $ 1.500,50 (mil quinientos pesos con cincuenta centavos) y cuando hacia una busqueda por mayor precio este me aparecia abajo de $ 1.500 (mil quinientos pesos) lo cual esta mal ya que tiene 50 centavos de diferencia. bueno me fije en la base de datos y lo estaba tratando como VARCHAR!, lo pase a INT y cuando ponia $ 1.500,50 me guardaba un 2 -.-, despues lo pase a DECIMAL (65.2) segun lei el primer parametro es para el total de caracteres admitidos antes de la coma y el segundo es para el total de caracteres despues de la coma. pero me sigue dando problemas..... a prueba y error me pase por muchos modos de tratar los numeros pero ninguno me resulto!

¿como debo guardar ese dato en mi bd? ¿como debo tratarlo?

Muchas gracias.
  #2 (permalink)  
Antiguo 08/10/2009, 15:04
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Respuesta: trabajar con separadores de Miles y decimales

Cita:
Iniciado por kadas99 Ver Mensaje
Buenas =)

tengo un problemita, cargo en mi base de datos un precio que lleva separador de miles (".") y separador de decimales (","), pero cuando los guarda me pone cualquier cosa, si por ejemplo, ingreso $ 1.500,50 (mil quinientos pesos con cincuenta centavos) y cuando hacia una busqueda por mayor precio este me aparecia abajo de $ 1.500 (mil quinientos pesos) lo cual esta mal ya que tiene 50 centavos de diferencia. bueno me fije en la base de datos y lo estaba tratando como VARCHAR!, lo pase a INT y cuando ponia $ 1.500,50 me guardaba un 2 -.-, despues lo pase a DECIMAL (65.2) segun lei el primer parametro es para el total de caracteres admitidos antes de la coma y el segundo es para el total de caracteres despues de la coma. pero me sigue dando problemas..... a prueba y error me pase por muchos modos de tratar los numeros pero ninguno me resulto!

¿como debo guardar ese dato en mi bd? ¿como debo tratarlo?

Muchas gracias.
haz intentado ver si es problema de reginalización o bien la configuracion de la regionalización..

Nos vemos.
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #3 (permalink)  
Antiguo 08/10/2009, 16:05
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: trabajar con separadores de Miles y decimales

Mysql tiene su manejo de separadores decimales independiente de la regionalización.

1.500,50 debes convertirlo en tu aplicación a 1500.50 para que se inserte el valor que es.

Si aceptase la coma, se confundirían las comas que separan los campos a insertar con la coma que separa los decimales.

Igual desde las aplicaciones existen metodos para darle el formato que se quiera a los números para visualizarlos como quieras.


saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 08/10/2009, 16:34
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: trabajar con separadores de Miles y decimales

Usa un campo float con dos decimales y escribe en la base el número como te recomienda huesos52. Luego puedes mostrarlo como quieres mediante la función format(), que hace precisamente lo que pides. Ej.
SELECT FORMAT(camponumero, 2)
También puedes hacerlo mediante programación, pero eso deberás preguntarlo en el foro de tu programa.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:21.