float
Oder wenn Sie auf die alte Schule gehen wollen:
real
Sie können auch float (53) verwenden, dies bedeutet jedoch dasselbe wie float.
("real" entspricht float (24), nicht float / float (53).)
Der dezimale (x, y) SQL Server-Typ ist für den Fall vorgesehen, dass Sie exakte Dezimalzahlen anstelle von Gleitkommazahlen (die Näherungswerte sein können) wünschen. Dies steht im Gegensatz zum C # -Datentyp "Dezimal", der eher einer 128-Bit-Gleitkommazahl ähnelt.
Der Float- Typ von MSSQL entspricht dem 64-Bit - Doppeltyp in .NET. (Meine ursprüngliche Antwort aus dem Jahr 2011 besagte, dass es einen kleinen Unterschied in der Mantisse geben könnte, aber ich habe dies im Jahr 2020 getestet und sie scheinen in ihrer binären Darstellung sowohl sehr kleiner als auch sehr großer Zahlen zu 100% kompatibel zu sein - siehe https: / /dotnetfiddle.net/wLX5Ox für meinen Test).
Um die Sache noch verwirrender zu machen, ist ein "float" in C # nur 32-Bit, daher entspricht es in SQL eher dem Typ real / float (24) in MSSQL als float / float (53).
In Ihrem speziellen Anwendungsfall ...
Sie benötigen lediglich 5 Stellen nach dem Dezimalpunkt, um Breiten- und Längengrade mit einer Genauigkeit von etwa einem Meter darzustellen, und Sie benötigen nur bis zu drei Stellen vor dem Dezimalpunkt für die Grade. Float (24) oder Dezimal (8,5) passen am besten zu Ihren Anforderungen in MSSQL, und die Verwendung von Float in C # ist gut genug, Sie benötigen kein Double. In der Tat werden Ihre Benutzer Ihnen wahrscheinlich dafür danken, dass Sie auf 5 Dezimalstellen gerundet haben, anstatt eine Reihe unbedeutender Ziffern für die Fahrt zu haben.