float
O si quieres ir a la vieja escuela:
real
También puede usar float (53), pero significa lo mismo que float.
("real" es equivalente a float (24), no float / float (53).)
El tipo decimal (x, y) de SQL Server es para cuando desea números decimales exactos en lugar de coma flotante (que pueden ser aproximaciones). Esto contrasta con el tipo de datos "decimal" de C #, que se parece más a un número de coma flotante de 128 bits.
El tipo flotante de MSSQL es equivalente al tipo doble de 64 bits en .NET. (Mi respuesta original de 2011 decía que podría haber una ligera diferencia en mantisa, pero lo probé en 2020 y parecen ser 100% compatibles en su representación binaria de números muy pequeños y muy grandes; consulte https: / /dotnetfiddle.net/wLX5Ox para mi prueba).
Para hacer las cosas más confusas, un "float" en C # es solo de 32 bits, por lo que sería más equivalente en SQL al tipo real / float (24) en MSSQL que float / float (53).
En su caso de uso específico ...
Todo lo que necesita es 5 lugares después del punto decimal para representar la latitud y la longitud dentro de una precisión de aproximadamente un metro, y solo necesita hasta tres dígitos antes del punto decimal para los grados. Float (24) o decimal (8,5) se ajustará mejor a sus necesidades en MSSQL, y usar float en C # es lo suficientemente bueno, no necesita el doble. De hecho, tus usuarios probablemente te agradecerán por redondear a 5 decimales en lugar de tener un montón de dígitos insignificantes para el viaje.