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

Redondeo raro

Estas en el tema de Redondeo raro en el foro de Mysql en Foros del Web. Buenos días, quería ver si alguno me podeis dar una explicación a algo que he visto que me sucede, que supongo será algo conocido pero ...
  #1 (permalink)  
Antiguo 01/02/2007, 05:52
 
Fecha de Ingreso: febrero-2007
Mensajes: 1
Antigüedad: 17 años, 2 meses
Puntos: 0
Redondeo raro

Buenos días,

quería ver si alguno me podeis dar una explicación a algo que he visto que me sucede, que supongo será algo conocido pero no encuentro solución.

Vamos al tema:

creo una base de datos con un campo float, inserto registros en ella, y los consulto...

mysql> select campo from tabla;

y obtengo:
...
| 0 |
| 1.8 |
| 1.3 |
| 1.1 |
| 1 |
| 1 |
| 0.9 |
| 0.8 |
| 1.3 |
+----------+
5025 rows in set (0,08 sec)


pero si hago...

mysql> select campo from tabla where campo="1.3";
Empty set (0,06 sec)

No obtengo ningun resultado.

Pero si hago:

mysql> select campo from tabla where campo<'1.3' and campo>'1.2999999';

Si obtengo resultados,

pero con campo>'1.29999999' vuelvo a no obtener resultados,

lo que me hace llegar a la conclusión de que mysql representa el float 1.3 con un número entre 1.2999999 y 1.29999999.

Alguien me puede explicar por qué, o como solucionarlo.

Muchas gracias.
  #2 (permalink)  
Antiguo 01/02/2007, 07:38
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Redondeo raro

La situación que se te presenta, es que es un campo de punto flotante, por tal motivo, a simple vista se ve 1.3, pero el almacenamiento real es otro (más decimales).

Lo que podrías hacer, es buscar el más parecido y para eso, podes utilizar la condición LIKE.

Código PHP:
SELECT campo
FROM tabla
WHERE campo LIKE 1.3 
También trata de NO utilizar comillas (') cuando realizas comparaciones en campos numéricos.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 02/02/2007, 16:53
 
Fecha de Ingreso: septiembre-2006
Ubicación: Argentina
Mensajes: 190
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: Redondeo raro

Usá comillas simples para expresar valores numéricos.

select campo from tabla where campo='1.3'

Saludos.
__________________
Gustavo
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 20:18.