float
Ou si vous voulez aller à la vieille école:
real
Vous pouvez également utiliser float (53), mais cela signifie la même chose que float.
("réel" est équivalent à float (24), pas à float / float (53).)
Le type SQL Server décimal (x, y) est pour quand vous voulez des nombres décimaux exacts plutôt que des virgules flottantes (qui peuvent être des approximations). Cela contraste avec le type de données "décimal" C #, qui ressemble plus à un nombre à virgule flottante de 128 bits.
Le type float de MSSQL est équivalent au type double 64 bits dans .NET. (Ma réponse originale de 2011 indiquait qu'il pourrait y avoir une légère différence dans la mantisse, mais je l'ai testée en 2020 et ils semblent être 100% compatibles dans leur représentation binaire des très petits et très grands nombres - voir https: / /dotnetfiddle.net/wLX5Ox pour mon test).
Pour rendre les choses plus confuses, un "float" en C # n'est que de 32 bits, il serait donc plus équivalent en SQL au type real / float (24) dans MSSQL que float / float (53).
Dans votre cas d'utilisation spécifique ...
Tout ce dont vous avez besoin est de 5 positions après le point décimal pour représenter la latitude et la longitude avec une précision d'environ un mètre, et vous n'avez besoin que de trois chiffres avant le point décimal pour les degrés. Float (24) ou décimal (8,5) correspondra le mieux à vos besoins en MSSQL, et l'utilisation de float en C # est assez bonne, vous n'avez pas besoin de doubler. En fait, vos utilisateurs vous remercieront probablement d'avoir arrondi à 5 décimales plutôt que d'avoir un tas de chiffres insignifiants à venir pour le trajet.