Obecně není dobrý nápad porovnávat čísla s plovoucí desetinnou čárkou s =
rovná se operátor.
-
Je správné porovnávat dvě zaokrouhlená čísla s pohyblivou řádovou čárkou pomocí operátoru ==?
-
Řešení problémů s přesností čísel s pohyblivou řádovou čárkou
Pro vaši aplikaci musíte zvážit, jak blízko chcete, aby byla odpověď.
1 stupeň je asi 112 km a 0,00001 stupně je asi 1,1 metru (na rovníku). Opravdu chcete, aby vaše aplikace říkala „není se rovnat“, pokud se dva body liší o 0,00000001 stupně =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
To vrátí body, kde je zeměpisná šířka v @epsilon
stupně požadované hodnoty. Měli byste zvolit hodnotu pro epsilon, která je vhodná pro vaši aplikaci.