ROUND (Transact-SQL)
Retourne une valeur numérique, arrondie à la longueur ou à la précision indiquée.
Syntaxe
ROUND ( numeric_expression , length [ ,function ] )
Arguments
numeric_expression
Expression de la catégorie du type de données numériques exact ou approximatif, sauf pour le type de données bit.length
Précision définie pour arrondir numeric_expression. length doit être une expression de type tinyint, smallint ou int. Lorsque length est un nombre positif, numeric_expression est arrondie au nombre de décimales indiqué par length. Lorsque length est un nombre négatif, numeric_expression est arrondie à gauche de la virgule décimale, selon l'indication fournie par length.function
Type d'opération à effectuer. function doit être de type tinyint, smallint ou int. Lorsque function est omise ou a la valeur 0 (par défaut), numeric_expression est arrondie. Lorsqu'une valeur autre que 0 est spécifiée, numeric_expression est tronquée.
Types de retours
Retourne les types de données suivants.
Résultat de l'expression |
Type de retour |
---|---|
tinyint |
int |
smallint |
int |
int |
int |
bigint |
bigint |
catégorie decimal et numeric (p, s) |
decimal(38, s) |
catégorie money et smallmoney |
money |
catégorie float et real |
float |
Notes
ROUND retourne toujours une valeur. Si length est une valeur négative supérieure au nombre de chiffres placés avant la virgule décimale, ROUND retourne 0.
Exemple |
Résultat |
---|---|
ROUND(748.58, -4) |
0 |
ROUND retourne une numeric_expression arrondie, quel que soit le type de données, lorsque length est un nombre négatif.
Exemples |
Résultat |
---|---|
ROUND(748.58, -1) |
750.00 |
ROUND(748.58, -2) |
700.00 |
ROUND(748.58, -3) |
1000.00 |
Exemples
A. Utilisation de ROUND et des estimations
Cet exemple contient deux expressions qui montrent qu'avec ROUND, le dernier chiffre est toujours une estimation.
SELECT ROUND(123.9994, 3), ROUND(123.9995, 3)
GO
Voici l'ensemble des résultats.
----------- -----------
123.9990 124.0000
B. Utilisation de ROUND et des approximations d'arrondi
Cet exemple montre des arrondis et des approximations.
SELECT ROUND(123.4545, 2);
GO
SELECT ROUND(123.45, -2);
GO
Voici l'ensemble des résultats.
----------
123.4500
(1 row(s) affected)
--------
100.00
(1 row(s) affected)
C. Utilisation de ROUND pour une troncature
Cet exemple utilise deux instructions SELECT pour démontrer la différence entre l'arrondi et la troncature. La première instruction arrondit le résultat. La seconde instruction tronque le résultat.
SELECT ROUND(150.75, 0);
GO
SELECT ROUND(150.75, 0, 1);
GO
Voici l'ensemble des résultats.
--------
151.00
(1 row(s) affected)
--------
150.00
(1 row(s) affected)