използвайте float или истински типове данни само ако точността, осигурена от десетични (до 38 цифри) е недостатъчно
-
Приблизителните числови типове данни (вижте таблица 3.3) не съхраняват точните стойности, посочени за много числа; съхраняватизключително близо приближение на стойността.(Technet)
-
Избягвайте използването на float или реални колони в условията за търсене на клауза WHERE, особено операторите =и <>. Най-добре е да ограничите float и реалните колони до> или <сравнения. (Technet)
така че обикновено изборът на десетичен за тип данни е най-добрият залог, ако
- Вашият номер може да се побере в него. Десетична точност е 10E38[~ 38 цифри]
- по-малкото място за съхранение (и може би скоростта на изчисление) на Float не е важно за вас
- изисква се точно числово поведение, като например във финансови приложения, при операции, включващи закръгляване или при проверки за равенство. (Technet)
- Точно Числови типове данни десетични и числови - MSDN
- числов =десетичен знак (5 до 17 байта)
- ще се преобразува в десетичен в .NET
- и двете имат (18, 0) като параметри по подразбиране (прецизност, мащаб) в SQL сървър
- мащаб =максимален брой десетични цифри, които могат да бъдат съхранени вдясно от десетичната запетая.
- money (8 байта) и smallmoney (4 байта) също са точен тип данни и ще се преобразуват в десетичен в .NET и имат 4 десетични точки (MSDN)
- Приблизително Числов тип данни float и real - MSDN
- реален (4 байта)
- ще се преобразува в Single в .NET
- Синонимът на ISO за real е float(24)
- float (8 байта)
- ще се преобразува в Double в .NET
- Всички точни числовите типове винаги дават един и същ резултат, независимо кой вид архитектура на процесора се използва или големината на числата
- Параметърът, предоставен на типа данни с плаваща запетая, дефинира броя на битовете, които се използват за съхраняване на мантисата на числото с плаваща запетая .
- Приблизителният числов тип данни обикновено използва по-малко място за съхранение и има по-добра скорост (до 20x) и трябва също да вземете предвид кога са били преобразувани в .NET
- Каква е разликата между Decimal, Float и Double в C#
- Десетична срещу двойна скорост
- SQL сървър – съпоставяне на типове данни .NET (от MSDN)
основен източник :Комплект за самостоятелно обучение MCTS (изпит 70-433):Microsoft® SQL Server® 2008 Разработка на база данни - Глава 3 - Таблици, типове данни и декларативна целостта на данните Урок 1 - Избор на типове данни (Насоки) - Страница 93