real y Schwimmer numerische Typen sind nützlich, um einen sehr breiten Wertebereich zu handhaben, wie er bei physikalischen Dimensionen oder mathematischen Ergebnissen vorkommt.
Der Verlust an Genauigkeit, der dadurch entsteht, wenn beispielsweise Werte addiert werden, die nicht im gleichen Bereich liegen, z. B. 0,00002468 + 1,23E9 (d. h. 1.230.000), ist für praktische Zwecke normalerweise akzeptabel. Dies ist ein kleiner Tribut an die relativ kompakten Speicheranforderungen dieser Gleitkommatypen.
Die Typen "Dezimal" und "Geld" decken nicht einen so großen Bereich ab (aber sie decken Bereiche ab, die über die meisten typischen Buchhaltungsanwendungen hinausgehen) und weisen keine dieser verlustbehafteten Verhaltensweisen mit Rundungen und dergleichen auf.
Ausführliche Informationen finden Sie im MS-SQL-Dokument. Die folgende Tabelle enthält eine indikativ Genauigkeit, Reichweite und Speicherbedarf für verschiedene Typen.
Type Max value precision(\*) Storage
money +/-922,000,000,000,000 3 (4?) 8 bytes
smallmoney +/-200,000 3? 4 bytes
decimal varies (as defined) varies varies 3 to 17
real +/- 3.4 \* 10^38 7 digits 4 bytes
float "56" +/- 1.7 \* 10 ^308 15 digits 8 bytes (float can also be declared to be just like a real)
(*) Genauigkeit : Bei den "exakten" Typen ist dies die Anzahl der Stellen nach dem Dezimalpunkt. Bei den "verlustbehafteten" Reals und Floats ist dies die Anzahl der signifikanten Ziffern.