ROUND (Transact-SQL)

Restituisce un valore numerico arrotondato alla lunghezza o alla precisione specificata.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

ROUND ( numeric_expression , length [ ,function ] )

Argomenti

  • numeric_expression
    Espressione di un tipo di dati della categoria numerici esatti o numerici approssimati, con l'eccezione del tipo di dati bit.

  • length
    Precisione in base a cui arrotondare l'argomento 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 specificato dall'argomento length. Quando length è un numero negativo, l'argomento numeric_expression viene arrotondato a sinistra del separatore decimale in base al valore di length.

  • function
    Tipo di operazione da eseguire. function deve essere di tipo tinyint, smallint o int. Se function viene omesso oppure è uguale a 0 (valore predefinito), l'argomento numeric_expression viene arrotondato. Se viene 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

Categorie decimal e numeric (p, s)

decimal(38, s)

Categorie money e smallmoney

money

Categorie 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)

1000.00

Esempi

A. 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

Set di risultati:

----------- -----------
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);
GO
SELECT ROUND(123.45, -2);
GO

Set di risultati:

----------

123.4500

(1 row(s) affected)

--------

100.00

(1 row(s) affected)

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

Set di risultati:

--------
151.00

(1 row(s) affected)

--------
150.00

(1 row(s) affected)