float e real (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)SQL analytics endpoint in Microsoft FabricWarehouse in Microsoft Fabric

Tipi di dati numerici approssimati da utilizzare con dati numerici a virgola mobile. I dati a virgola mobile sono approssimati. Pertanto, non tutti i valori nell'intervallo del tipo di dati possono essere rappresentati in modo esatto. Il sinonimo ISO per real è float(24).

Convenzioni di sintassi Transact-SQL

Sintassi

float [ (n) ] dove n è il numero di bit usato per archiviare la mantissa del numero float in notazione scientifica e pertanto determina la precisione e le dimensioni di archiviazione. Se n è specificato, deve essere un valore tra 1 e 53. Il valore predefinito di n è 53.

Valore n Precision Dimensioni dello spazio di archiviazione
1-24 7 cifre 4 byte
25-53 15 cifre 8 byte

Nota

SQL Server interpreta n come uno dei due valori possibili. Se 1<=n<=24, n viene interpretato come 24. Se 25<=n<=53, n viene interpretato come 53.

Il tipo di dati float[(n)] di SQL Server è conforme allo standard ISO per tutti i valori di n, da 1 a 53. Il sinonimo di double precision è float(53).

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Osservazioni:

Tipo di dati Intervallo Storage
float Da - 1,79E+308 a -2,23E-308, 0 e da 2,23E-308 a 1,79E+308 Dipende dal valore di n
real Da - 3,40E + 38 a -1,18E - 38, 0 e da 1,18E - 38 a 3,40E + 38 4 byte

Conversione dei dati di tipo float e real

I valori di tipo float vengono troncati in fase di conversione in un tipo di dati Integer.

Durante la conversione dal tipo di dati float o real a dati carattere, l'uso della funzione stringa STR è in genere più pratico rispetto all'uso di CAST( ). STR infatti garantisce un maggiore controllo sul formato. Per altre informazioni, vedere STR (Transact-SQL) e Funzioni (Transact-SQL).

Prima di SQL Server 2016 (13.x), la conversione dei valori float in decimal o numeric è limitata ai soli valori con precisione a 17 cifre. Qualsiasi valore float minore di 5E-18 (se impostato usando la notazione scientifica di 5E-18 o la notazione decimale di 0,000000000000000005) viene arrotondato per difetto a 0. Questa non è più una restrizione a partire da SQL Server 2016 (13.x).

Vedi anche

ALTER TABLE (Transact-SQL)
CAST e CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)
Conversione del tipo di dati (motore di database)
Tipi di dati (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
SET @local_variable (Transact-SQL)