Numeric/Decimal jsou datové typy s pevnou přesností. Uloží hodnoty s přesnou přesností a škáluje to, co jste definovali.
Pokud potřebujete ukládat data tam, kde nezáleží na malých rozdílech, můžete použít Float nebo Real. Pokud ale potřebujete mít přesná data např. pro finanční aplikaci. K uložení přesných dat byste měli používat datový typ Numeric/Decimal nebo Money, protože malý rozdíl může ovlivnit výpočty.
Příklad:
Pojďme deklarovat dvě proměnné a uložit stejná data a uvidíme, co se stane s výstupem kvůli jejich datovému typu.
DECLARE @DecimalVariable DECIMAL(8, 2) SET @DecimalVariable = 213429.95 DECLARE @FloatVariable FLOAT(24) SET @FloatVariable = 213429.95 SELECT @DecimalVariable AS DecimalVariable ,@FloatVariable AS FloatVariable
Rozdíl mezi pohyblivou a desetinnou/numerickou v SQL Server – T SQL výukový program
Jak můžeme vidět na výše uvedeném snímku, Decimal uložil a ukázal přesné hodnoty a tam, kde máme uložené hodnoty v float, zaokrouhloval hodnoty.
Protože datové typy float/real jsou přibližné datové typy, nepoužívejte je v klauzuli Where speciálně s operátory =nebo <>.