float
Или, если вы хотите пойти в старую школу:
real
Вы также можете использовать float (53), но это означает то же самое, что и float.
(«реальный» эквивалентен float (24), а не float / float (53).)
Тип десятичный (x, y) SQL Server предназначен для случаев, когда вы хотите точные десятичные числа, а не с плавающей запятой (что может быть приближением). Это отличается от «десятичного» типа данных C #, который больше похож на 128-битное число с плавающей запятой.
MSSQL float не имеет точно такой же точности, как 64-битный двойной тип в .NET (небольшая разница в мантиссе IIRC), но это достаточно близкое соответствие для большинства применений.
Чтобы запутать, "float" в C # является только 32-битным, поэтому в SQL он будет более эквивалентен типу real / float (24) в MSSQL, чем float / float (53).
В вашем конкретном случае использования ...
Все, что вам нужно, это 5 знаков после запятой, чтобы представить широту и долготу с точностью до одного метра, и вам нужно всего до трех цифр перед запятой для градусов. Float (24) или decimal (8,5) будут лучше всего соответствовать вашим потребностям в MSSQL, и использование float в C # достаточно хорошо, вам не нужно использовать double. Фактически, ваши пользователи, вероятно, будут благодарить вас за округление до 5 знаков после запятой, а не за то, что у вас будет куча несущественных цифр.