float und real (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

Ungefähre Zahlendatentypen für numerische Gleitkommadaten. Gleitkommadaten sind Näherungswerte, deshalb können nicht alle Werte im Bereich des Datentyps exakt dargestellt werden. Das ISO-Synonym für real ist float(24) .

Transact-SQL-Syntaxkonventionen

Syntax

float [ (n) ]. Hierbei entspricht n der Anzahl von Bits, die zum Speichern der Mantisse der Gleitkommazahl in der wissenschaftlichen Schreibweise verwendet werden. Dadurch werden die Genauigkeit und die Speichergröße festlegt. Wenn n angegeben wird, muss es sich um einen Wert zwischen 1 und 53 handeln. Der Standardwert von n lautet 53.

Wert n Precision Speichergröße
1-24 7 Stellen 4 Byte
25-53 15 Stellen 8 Byte

Hinweis

SQL Server verarbeitet n als einen von zwei möglichen Werten. Wenn 1<=n<=24 gegeben ist, wird n als 24 behandelt. Wenn 25<=n<=53 gegeben ist, wird n als 53 behandelt.

Der SQL Server-Datentyp float[ (n) ] entspricht dem ISO-Standard für alle Werte von n zwischen 1 und 53. Das Synonym für double precision lautet float(53) .

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) oder früher finden Sie unter Dokumentation zu früheren Versionen.

Hinweise

Datentyp Range Storage
float - 1,79E+308 bis -2,23E-308, 0 und 2,23E-308 bis 1,79E+308 Hängt vom Wert für n ab.
real - 3,40E + 38 bis -1,18E - 38, 0 und 1,18E - 38 bis 3,40E + 38 4 Byte

Konvertieren von float- und real-Daten

Werte des Typs float werden bei der Konvertierung in einen Integertyp abgeschnitten.

Für das Konvertieren von float- oder real-Daten in Zeichendaten eignet sich die STR-Zeichenfolgenfunktion normalerweise besser als CAST( ). Der Grund hierfür ist, dass STR Ihnen bessere Steuerungsmöglichkeiten über die Formatierung bietet. Weitere Informationen finden Sie unter STR (Transact-SQL) und unter Funktionen (Transact-SQL).

Vor SQL Server 2016 (13.x) ist die Konvertierung von float-Werten in decimal- oder numeric-Werte auf Werte mit einer Genauigkeit von 17 Stellen beschränkt. Jeder float-Wert kleiner als 5E-18 (der entweder in der wissenschaftlichen Schreibweise als 5E-18 oder in der Dezimalschreibweise als 0,000000000000000005 festgelegt ist) wird auf 0 abgerundet. Dies stellt ab SQL Server 2016 (13.x) keine Einschränkung mehr dar.

Weitere Informationen

ALTER TABLE (Transact-SQL)
CAST und CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)
Datentypkonvertierung (Datenbank-Engine)
Datentypen (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
SET @local_variable (Transact-SQL)