Ver Mensaje Individual
  #6  
Antiguo 10-06-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

En Firebird cree e hice estas pruebas sobre la tabla LUGARES con tres campos NOMBRE, LATITUD y LONGITUD (El primero VARCHAR(20) y los dos restantes DOUBLE PRECISION).

Valores:
Código:
NOMBRE	LATITUD	         LONGITUD     OPERACION
A	38,353619	-2,45806      (-0.6)
B	38,953619	-1,85806      ( = )
C	38,553619	-1,25806      (+0.6)
Y tanto con la función ABS, o mediante BETWEEN obtengo los registros, pero las comparaciónes no pueden ser echas como mencioné en el mensaje anterior debido a los decimales.

En el caso de Firebird 2.5 y con DOUBLE PRECISION tuve que comparar con un mínimo de:
Código SQL [-]
   ...
  WHERE LATITUD - 38.953619 BETWEEN -0.60000000000001 AND 0.60000000000001
    AND LONGITUD +  1.85806 BETWEEN -0.60000000000001 AND 0.60000000000001
O
Código SQL [-]
  ...
  WHERE ABS(LATITUD - 38.953619)  <= 0.60000000000001
    AND ABS(LONGITUD + 1.85806 )  <= 0.60000000000001
Para que mostrara la totalidad de registros que deberían ser incluidos.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita