Ce n'est généralement pas une bonne idée de comparer les nombres à virgule flottante avec =
opérateur égal.
-
Est-il correct de comparer deux nombres à virgule flottante arrondis en utilisant l'opérateur == ?
-
Traitement des problèmes de précision dans les nombres à virgule flottante
Pour votre application, vous devez considérer à quel point vous voulez que la réponse soit proche.
1 degré correspond à environ 112 km et 0,00001 degré correspond à environ 1,1 mètre (à l'équateur). Voulez-vous vraiment que votre application dise "différent" si deux points sont différents de 0,00000001 degré =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
Cela renverra les points où lngitude est dans @epsilon
degrés de la valeur souhaitée. Vous devez choisir une valeur pour epsilon adaptée à votre application.