float
Nebo pokud chcete jít do staré školy:
real
Můžete také použít float(53), ale to znamená totéž jako float.
(„skutečný“ je ekvivalentní k float(24), nikoli float/float(53).)
desítkové (x,y) Typ SQL Server je pro případ, kdy chcete přesné desetinná čísla spíše než s pohyblivou řádovou čárkou (což mohou být aproximace). To je v kontrastu s "desítkovým" datovým typem C#, který je spíše jako 128bitové číslo s plovoucí desetinnou čárkou.
float MSSQL typ je ekvivalentní 64bitovému dvojitému zadejte .NET. (Moje původní odpověď z roku 2011 říkala, že by v mantisách mohl být nepatrný rozdíl, ale testoval jsem to v roce 2020 a zdá se, že jsou 100% kompatibilní ve svém binárním vyjádření velmi malých i velmi velkých čísel – viz https:/ /dotnetfiddle.net/wLX5Ox pro můj test).
Aby to bylo více matoucí, "float" v C# je pouze 32bitový, takže by byl v SQL ekvivalentnější typu real/float(24) v MSSQL než float/float(53).
Ve vašem konkrétním případě použití... Vše, co potřebujete, je 5 míst za desetinnou čárkou k vyjádření zeměpisné šířky a délky s přesností asi jednoho metru a pro stupně vám stačí až tři číslice před desetinnou čárkou. Float(24) nebo decimal(8,5) bude nejlépe vyhovovat vašim potřebám v MSSQL a použití float v C# je dost dobré, nepotřebujete double. Ve skutečnosti vám vaši uživatelé pravděpodobně poděkují za zaokrouhlení na 5 desetinných míst, místo aby vám na cestu přicházela spousta bezvýznamných číslic.