float und real (Transact-SQL)

Gilt für:yesSQL Server (alle unterstützen Versionen) YesAzure SQL-Datenbank YesAzure SQL Managed Instance yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

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) .

Topic link iconTransact-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 oder früher finden Sie unter Dokumentation zu früheren Versionen.

Bemerkungen

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)