Произошла недопустимая операция с плавающей точкой. SQL Server 2008

У меня странная проблема с этим кодом: если я запускаю его как показано ниже, я получаю ошибку:

Произошла недопустимая операция с плавающей точкой.

Но если я изменю параметр @Longitude на -98.508730 (заметьте, изменилась только последняя цифра), то код работает нормально.

Код должен перечислить свойства в @MilesRadius вокруг некоторой точки LatLng.
Параметры @Latitude и @Longitude имеют тот же тип, что и поля longitude и latitude в таблице Address.

Что я могу сделать? Спасибо.

DECLARE @Latitude decimal (10,6);
DECLARE @Longitude decimal (10,6);
DECLARE @MilesRadius int;
SET @Latitude = 29.607654
SET @Longitude = -98.508731
SET @MilesRadius  = 5

SELECT     ADR.LineOne as address, 
           ADR.City as city,           
           ADR.Latitude as latitude,
           ADR.Longitude as longitude, 
           ((3959 * acos(cos(radians(@Latitude)) * cos(radians(ADR.Latitude)) * cos(radians(ADR.Longitude) - radians(@Longitude)) + sin(radians(@Latitude)) * sin(radians(ADR.Latitude))))) as distance
FROM       Shared.Address ADR
WHERE      ADR.Latitude IS NOT NULL AND 
           ADR.Longitude IS NOT NULL AND 
           (3959 * acos(cos(radians(@Latitude)) * cos(radians(ADR.Latitude)) * cos(radians(ADR.Longitude) - radians(@Longitude)) + sin(radians(@Latitude)) * sin(radians(ADR.Latitude)))) < @MilesRadius                       
ORDER BY distance
9
задан bobetko 12 January 2012 в 15:18
поделиться