Skúste spustiť nasledujúci dopyt a uvidíte, o čom hovoríme:
DECLARE @TestValue float — or real
SET @TestValue = 6.9
SELECT TestValue = @TestValue
Nebudete vidieť výsledok, aký by ste očakávali (6,9). Skôr uvidíte 6,9000000000000004 pre typ float alebo 6,9000001 pre typ real. (Nezabudnite, že v skutočnosti je typ real len synonymom pre float(24)).
Prečo k tomu dochádza? Podľa SQL BOL, pohyblivá desatinná čiarka je „približná“ zámerne a "nie všetky hodnoty v rozsahu dátového typu môže byť presne vyjadrené." Takže čo urobíte, keď potrebujete presne vyjadrené desatinné číslo? Použijete celé číslo.