float e real (Transact-SQL)
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.
[!NOTA]
Il sinonimo di ISO per real è float(24).
Tipo di dati |
Intervallo |
Archiviazione |
---|---|---|
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 |
Convenzioni della sintassi Transact-SQL
Sintassi
float [ (n) ]
Dove n è il numero di bit utilizzato per archiviare la mantissa del numero float nella notazione scientifica e che pertanto determina la precisione e le dimensioni di archiviazione. Se si specifica n, il valore deve essere compreso nell'intervallo da 1 a 53. Il valore predefinito di n è 53.Valore n
Precisione
Dimensioni dello spazio di archiviazione
1-24
7 cifre
4 byte
25-53
15 cifre
8 byte
[!NOTA]
SQL Server interpreta n come uno di due possibili valori. Se 1<=n<=24, n viene interpretato come 24. Se 25<=n<=53, n viene interpretato come 53.
Il tipo di dati SQL Server float[(n) è conforme allo standard ISO per tutti i valori di n da 1 a 53. Il sinonimo per double precision è float(53).
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 in dati di tipo carattere, risulta più utile utilizzare la funzione per i valori stringa STR anziché la funzione CAST( ). STR infatti garantisce un maggiore controllo sul formato. Per ulteriori informazioni, vedere STR (Transact-SQL) e Funzioni predefinite (Transact-SQL).
La conversione dei valori float che utilizzano decimal o numeric come notazione scientifica è limitata solo ai valori di precisione a 17 cifre. Tutti i valori con precisione maggiore di 17 vengono arrotondati a zero.
Vedere anche
Riferimento
DECLARE @local\_variable (Transact-SQL)
SET @local\_variable (Transact-SQL)