float
Lub jeśli chcesz iść starej szkoły:
real
Można również użyć pływaka (53), ale oznacza to samo, co pływaka.
("prawdziwy" jest równoznaczne z pływaka (24), nie unoszą/float (53)).
The przecinku (x, y) typu SQL Server jest dla kiedy chcesz dokładny dziesiętny liczby, a nie zmiennoprzecinkowe (które mogą być przybliżeniami). Jest to przeciwieństwo typu danych "dziesiętnych" C#, który jest bardziej podobny do 128-bitowego numeru zmiennoprzecinkowego.
MSSQL pływak nie posiada dokładnie taka sama precyzja jak 64-bitowym podwójnym typu w .NET (niewielka różnica w mantysy IIRC), ale jest to na tyle blisko dopasować większość zastosowań.
Aby sprawić, by sytuacja była bardziej zagmatwana, "float" w języku C# ma tylko wartość 32-bitową, więc byłby bardziej równoważny w SQL dla typu real/float (24) w MSSQL niż float/float (53).
W konkretnego przypadku użycia ... Wszystko czego potrzebujesz to 5 miejsc po przecinku do reprezentowania szerokości i długości geograficznej odległości około jednego metra precyzją, a wystarczy tylko do trzech cyfr przed przecinkiem dla stopnie. Float (24) lub dziesiętny (8,5) najlepiej pasuje do twoich potrzeb w MSSQL, a używanie float w C# jest wystarczająco dobre, nie potrzebujesz podwójnego. W rzeczywistości Twoi użytkownicy będą prawdopodobnie dziękowali za zaokrąglenia do 5 miejsc po przecinku, zamiast kupować nieznaczną liczbę cyfr.
Mówisz pływak, David mówi dziesiętnie, teraz jestem jeszcze bardziej zdezorientowany :) – Xaisoft
Używam podwójnych w C#, a wartościami tymi będą wartości szerokości i długości geograficznej w odpowiednich kolumnach. – Xaisoft
Muszę się zgodzić i przyznać, że byłem poza bazą. Wprowadzono dziesiętny w środowisku IBM DB2, gdzie dziesiętny jest rzeczywistym typem danych, obsługiwanym przez wszystkie smaki kodu i bazy danych na platformach IBM. Nie chodzi o to, że nie jest to prawdziwy typ danych w świecie MS, ale nie jest obsługiwany tak dobrze, jak w obozie IBM. Przepraszam za tworzenie zamieszania. – DaveN59