Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Какво представлява двоен в sql сървър?

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 знака след десетичната запетая, вместо да имате куп незначителни цифри, които идват при пътуването.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да промените таблицата в SQL Server с помощта на Alter Statement - SQL Server / T-SQL урок, част 35

  2. 4 начина да помогнете за предотвратяване на претоварване на сигнали с наблюдение на SQL сървър

  3. Получавате часа на дата и час с помощта на T-SQL?

  4. Има ли някакви недостатъци винаги да използвате nvarchar(MAX)?

  5. SqlDateTime.MinValue !=DateTime.MinValue, защо?