ROUND (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse 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 di tipi di dati numerici esatti o numerici approssimativi.
length
Precisione per l'arrotondamento di numeric_expression . 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
Tipo di operazione da eseguire. la funzione deve essere tinyint, smallint o int. Quando la funzione viene omessa o ha un valore pari a 0 (impostazione predefinita), numeric_expression viene arrotondata. Se è specificato un valore diverso da 0, l'argomento 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) | decimal(p, s) |
Categoria money e smallmoney | money |
Categoria float e real | float |
Osservazioni:
La funzione ROUND restituisce sempre un valore. Se l'argomento length è negativo e maggiore del numero di cifre che precedono il separatore decimale, la funzione ROUND restituisce 0.
Esempio | Risultato |
---|---|
ROUND(748.58, -4) | 0 |
La funzione ROUND restituisce un valore numeric_expression arrotondato indipendentemente dal tipo di dati quando length è un numero negativo.
Esempi | Risultato |
---|---|
ROUND(748.58, -1) | 750.00 |
ROUND(748.58, -2) | 700.00 |
ROUND(748.58, -3) | Genera un overflow aritmetico, perché 748.58 assume il valore decimal(5,2), tramite il quale non può essere restituito 1000.00. |
Per un arrotondamento fino a 4 cifre, modificare il tipo di dati di input. Ad esempio:SELECT ROUND(CAST (748.58 AS decimal (6,2)),-3); |
1000.00 |
Esempi
R. Utilizzo della funzione ROUND e delle stime
In questo esempio vengono utilizzate due espressioni per illustrare che con la funzione 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. Utilizzo della funzione ROUND e delle approssimazioni di 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. Utilizzo della funzione ROUND per ottenere un troncamento
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
SELECT ROUND(150.75, 0, 1);
GO
Il set di risultati è il seguente.
--------
151.00
(1 row(s) affected)
--------
150.00
(1 row(s) affected)
Vedi anche
CEILING (Transact-SQL)
Tipi di dati (Transact-SQL)
Espressioni (Transact-SQL)
FLOOR (Transact-SQL)
Funzioni matematiche (Transact-SQL)