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

No redondear decimales

Estas en el tema de No redondear decimales en el foro de Bases de Datos General en Foros del Web. Hola, añado datos a una base de datos que tiene puesto INT y si pongo 4.5 se pone 5, 3.5 se pone 4, esto no ...
  #1 (permalink)  
Antiguo 27/10/2008, 12:56
 
Fecha de Ingreso: abril-2007
Mensajes: 213
Antigüedad: 17 años, 6 meses
Puntos: 0
No redondear decimales

Hola, añado datos a una base de datos que tiene puesto INT y si pongo 4.5 se pone 5, 3.5 se pone 4, esto no ocurre si pongo TEXT pero entonces no los puedo ordenar de mayor a menor.

¿Qué debo hacer?
  #2 (permalink)  
Antiguo 27/10/2008, 18:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: No redondear decimales

Poner un tipo de datos FLOAT, DECIMAL, DOUBLE o REAL, según el motor que sea..
Es obvio que si transformas un decimal en un entero se truncará la parte decimal del número. Lo que tu tienes que definir es hacia dónde realizará el redondeo: hacia arriba o hacia abajo...

Si, por otro lado, lo metes en un TEXT te funcionará relativamente bien para el ordenamiento, pero no podrás manejarlo con seguridad sin conversiones. Además, cuando pones un emtero dentro de un TEXT o un VARCHAR, VARCHAR2 o CHAR, en realidad estás desperdiciando espacio, ya que un número 123456 requiere 6 bytes como TEXT y 4 bytes como INTEGER (de hecho 4000000000 requiere sólo 4 bytes y no 10), con lo que estás desperdiciando espacio en disco.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 14:41.