float
Atau jika Anda ingin bergaya lama:
real
Anda juga dapat menggunakan float(53), tetapi artinya sama dengan float.
("nyata" sama dengan float(24), bukan float/float(53).)
Desimal(x,y) Jenis SQL Server adalah ketika Anda ingin tepat angka desimal daripada floating point (yang bisa menjadi perkiraan). Ini berbeda dengan tipe data "desimal" C#, yang lebih seperti angka floating point 128-bit.
mengambang MSSQL type setara dengan ganda 64-bit ketik .NET. (Jawaban asli saya dari 2011 mengatakan mungkin ada sedikit perbedaan dalam mantissa, tetapi saya telah menguji ini pada tahun 2020 dan mereka tampaknya 100% kompatibel dalam representasi biner mereka dari angka yang sangat kecil dan sangat besar - lihat https:/ /dotnetfiddle.net/wLX5Ox untuk pengujian saya).
Untuk membuat segalanya lebih membingungkan, "float" di C# hanya 32-bit, jadi dalam SQL akan lebih setara dengan tipe real/float(24) di MSSQL daripada float/float(53).
Dalam kasus penggunaan khusus Anda... Yang Anda butuhkan hanyalah 5 tempat setelah titik desimal untuk mewakili garis lintang dan garis bujur dalam presisi sekitar satu meter, dan Anda hanya perlu hingga tiga digit sebelum titik desimal untuk derajat. Float(24) atau desimal(8,5) paling sesuai dengan kebutuhan Anda di MSSQL, dan menggunakan float di C# sudah cukup baik, Anda tidak perlu double. Bahkan, pengguna Anda mungkin akan berterima kasih karena telah membulatkan ke 5 tempat desimal daripada mendapatkan banyak angka tidak penting yang ikut serta.