Geralmente não é uma boa ideia comparar números de ponto flutuante com
=
operador igual. -
É correto comparar dois números de ponto flutuante arredondados usando o operador ==?
-
Como lidar com problemas de precisão em números de ponto flutuante
Para sua aplicação, você precisa considerar o quão perto deseja que a resposta seja.
1 grau é cerca de 112 km e 0,00001 grau é cerca de 1,1 metros (no equador). Você realmente quer que seu aplicativo diga "não é igual" se dois pontos forem diferentes em 0,00000001 graus =1 mm?
set @EPSLION = 0.00001 /* 1.1 metres at equator */
SELECT * FROM location_forslag
WHERE `lngitude` >= 13.8461208 [email protected]
AND `lngitude` <= 13.8461208 + @EPSILON
Isso retornará pontos onde lngitude está dentro de
@epsilon
graus do valor desejado. Você deve escolher um valor para epsilon que seja apropriado para sua aplicação.