float
Или ако искате да отидете в старата школа:
real
Можете също да използвате float(53), но това означава същото нещо като float.
(„real“ е еквивалентно на float(24), а не на float/float(53).)
Десичният знак (x,y) Типът на SQL Server е за, когато искате точен десетични числа, а не с плаваща запетая (които могат да бъдат приблизителни). Това е в контраст с "десетичния" тип данни на C#, който е по-скоро като 128-битово число с плаваща запетая.
float на MSSQL тип е еквивалентен на 64-битовдвойно въведете .NET. (Оригиналния ми отговор от 2011 г. каза, че може да има малка разлика в мантисата, но тествах това през 2020 г. и изглежда, че са 100% съвместими в двоичното си представяне както на много малки, така и на много големи числа - вижте https:/ /dotnetfiddle.net/wLX5Ox за моя тест).
За да направим нещата по-объркващи, "float" в C# е само 32-битов, така че би бил по-еквивалентен в SQL на типа real/float(24) в MSSQL, отколкото float/float(53).
В конкретния ви случай на употреба... Всичко, от което се нуждаете, е 5 места след десетичната запетая, за да представите географска ширина и дължина с точност от около един метър, и ви трябват само до три цифри преди десетичната запетая за градусите. Float(24) или decimal(8,5) ще отговарят най-добре на вашите нужди в MSSQL, а използването на float в C# е достатъчно добро, нямате нужда от двойно. Всъщност потребителите ви вероятно ще ви благодарят, че сте закръглили до 5 знака след десетичната запетая, вместо да имате куп незначителни цифри, които идват при пътуването.