float
Ou se você quer ir à moda antiga:
real
Você também pode usar float (53), mas isso significa o mesmo que float.
("real" é equivalente a float (24), não float / float (53).)
O tipo decimal (x, y) do SQL Server é para quando você deseja números decimais exatos em vez de ponto flutuante (que podem ser aproximações). Isso contrasta com o tipo de dados "decimal" do C #, que é mais parecido com um número de ponto flutuante de 128 bits.
O tipo de flutuação do MSSQL é equivalente ao tipo duplo de 64 bits no .NET. (Minha resposta original de 2011 disse que poderia haver uma pequena diferença na mantissa, mas testei isso em 2020 e elas parecem ser 100% compatíveis na representação binária de números muito pequenos e muito grandes - consulte https: / /dotnetfiddle.net/wLX5Ox para o meu teste).
Para tornar as coisas mais confusas, um "float" em C # tem apenas 32 bits, portanto seria mais equivalente no SQL ao tipo real / float (24) no MSSQL do que float / float (53).
No seu caso de uso específico ...
Tudo o que você precisa é de 5 casas após o ponto decimal para representar a latitude e longitude com precisão de cerca de um metro, e você só precisa de três dígitos antes do ponto decimal para os graus. Float (24) ou decimal (8,5) melhor atenderá às suas necessidades no MSSQL, e o uso de float em C # é bom o suficiente, você não precisa dobrar. De fato, seus usuários provavelmente agradecerão por arredondar para cinco casas decimais, em vez de ter vários dígitos insignificantes aparecendo no passeio.