Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Piattaforma di analisi (PDW)
Endpoint di analisi SQL in Microsoft Fabric
Magazzino in Microsoft Fabric
Database SQL in Microsoft Fabric
Restituisce un valore numerico arrotondato alla lunghezza o alla precisione specificata.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
ROUND ( numeric_expression , length [ , function ] )
Argomenti
numeric_expression
Espressione della categoria del tipo di dati numerici esatti o numerici approssimati.
length
La precisione con cui numeric_expression deve essere arrotondata. length deve essere un'espressione di tipo tinyint, smallint o int. Quando length è un numero positivo, numeric_expression viene arrotondato al numero di posizioni decimali specificate per lunghezza. Quando length è un numero negativo, numeric_expression viene arrotondato a sinistra del separatore decimale come specificato da length.
function
Il tipo di operazione da eseguire.
La funzione deve essere Tinyint, Smallint o Int. Quando la funzione viene omessa o ha un valore di 0 (predefinito), numeric_expression viene arrotondata. Quando un valore diverso da 0 è specificato, numeric_expression viene troncato.
Tipi restituiti
Restituisce i tipi di dati seguenti:
| Risultato dell'espressione | Tipo restituito |
|---|---|
| tinyint | int |
| smallint | int |
| int | int |
| bigint | bigint |
| Categoria decimal e numeric (p, s) | decimale(p, s) |
| Categoria money e smallmoney | money |
| Categoria float e real | float |
Osservazioni:
ROUNDrestituisce sempre un valore. Se la lunghezza è negativa e maggiore del numero di cifre prima del punto decimale,ROUNDrestituisce0.Esempio Risultato ROUND(748.58, -4)0 ROUNDrestituisce un numeric_expression arrotondato, indipendentemente dal tipo di dato, quando la lunghezza è un numero negativo.Esempi Risultato ROUND(748.58, -1)750.00 ROUND(748.58, -2)700.00 ROUND(748.58, -3)Comporta un overflow aritmetico, perché 748.58 di default è decimale(5, 2), che non può restituire 1000.00.Per arrotondare fino a quattro cifre, cambia il tipo di dato dell'input. Ad esempio:
SELECT ROUND(CAST (748.58 AS DECIMAL (6, 2)), -3);Il set di risultati è il seguente.
1000.00ROUNDrompe i pareggi arrotondando metà da zero (noto anche come arrotondamento commerciale).Esempi Risultato ROUND(1.15, 1)1.2 ROUND(-1.15, 1)-1,2
Esempi
R. Usa ROUND e stime
L'esempio seguente mostra due espressioni che dimostrano usando ROUND, l'ultima cifra è sempre una stima.
SELECT ROUND(123.9994, 3),
ROUND(123.9995, 3);
GO
Il set di risultati è il seguente.
----------- -----------
123.9990 124.0000
B. Usare approssimazioni ROUND e arrotondamento
Nell'esempio seguente vengono illustrati l'arrotondamento e l'approssimazione.
SELECT ROUND(123.4545, 2),
ROUND(123.45, -2);
Il set di risultati è il seguente.
---------- ----------
123.4500 100.00
C. Usa ROUND per troncare
Nell'esempio seguente vengono utilizzate due istruzioni SELECT per illustrare la differenza tra l'arrotondamento e il troncamento. La prima istruzione arrotonda il risultato, la seconda lo tronca.
SELECT ROUND(150.75, 0);
GO
Il set di risultati è il seguente.
151.00
SELECT ROUND(150.75, 0, 1);
GO
Il set di risultati è il seguente.
150.00