У меня есть столбец географии с именем Location. Мне нужно ВЫБРАТЬ Location.Lat и Location.Long как один результат VARCHAR. Используя следующие я теряю точность:Преобразование географии SQL Lat/Long в VARCHAR без потери точности
Запрос:
SELECT CONVERT(VARCHAR(MAX), Location.Lat) + ' ' + CONVERT(VARCHAR(MAX), Location.Long)
Оригинал Location.Lat:
52.2708633333333
Оригинал Location.Long:
-9.73093666666667
форма Результат выше:
52.2709 -9.73094
Я понимаю, что это связано с тем, что Lat и Long являются плавающими и не имеют точности, указанной таким образом, что возможное обходное решение будет заключаться в том, чтобы заставить ее десятичную сперва с указанной точностью и затем преобразовать ее в varchar. Это похоже ..... неуклюжая, и того, чтобы выбрать случайную точность заставит либо
(а) потерю заднего значение, если оно слишком низкое или
(б) дополнительных ненужных значений хвостовых.
Пожалуйста, скажите мне, что у меня отсутствует функция или метод преобразования, чтобы вернуть их в качестве точных представлений varchar!
Что * точность * Вы первоначально измерение широту и долготу? Знаете ли вы, что на четвертом знаке после запятой вы точно до десяти метров? У вас действительно есть измерения, которые настолько точнее, что вам нужно сохранить дополнительные цифры? –
Да, я думаю, что 5 или 6 знаков после запятой были бы достаточно точными, но не любят жесткое кодирование произвольного значения, которое приводит к потере точности (независимо от того, как минутка, если это значение географии, которое я бы хотел использовать) – KrustyGString