float und real (Transact-SQL)
Gilt für: SQL Server (alle unterstützten Versionen)
Azure SQL-Datenbank
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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) .
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 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)