ROUND (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in Microsoft Fabric
Retourne une valeur numérique, arrondie à la longueur ou à la précision indiquée.
Conventions de la syntaxe Transact-SQL
Syntaxe
ROUND ( numeric_expression , length [ ,function ] )
Arguments
numeric_expression
Expression de la catégorie de type de données numérique exacte ou approximative.
length
Précision avec laquelle l’expression numeric_expression doit être arrondie. length doit être une expression de type tinyint, smallint ou int. Quand length est un nombre positif, l’expression numeric_expression est arrondie au nombre de décimales indiqué par length. Quand length est un nombre négatif, l’expression numeric_expression est arrondie à gauche de la virgule décimale, comme indiqué par length.
function
Type d'opération à effectuer. function doit être de type tinyint, smallint ou int. Lorsque function est omis ou a la valeur 0 (valeur par défaut), l’expression numeric_expression est arrondie. Lorsqu’une valeur autre que 0 est spécifiée, l’expression numeric_expression est tronquée.
Types de retour
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(p, s) |
Catégorie money et smallmoney | money |
Catégorie float et real | float |
Remarques
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ésultats |
---|---|
ROUND(748.58, -4) | 0 |
ROUND retourne une expression numeric_expression arrondie, quel que soit le type de données, lorsque length est un nombre négatif.
Exemples | Résultats |
---|---|
ROUND(748.58, -1) | 750.00 |
ROUND(748.58, -2) | 700.00 |
ROUND(748.58, -3) | Le résultat est un dépassement arithmétique car la valeur par défaut de 748.58 est une décimale (5,2) qui ne peut pas retourner 1000.00. |
Pour arrondir jusqu'à 4 chiffres, modifiez le type de données de l'entrée. Par exemple :SELECT ROUND(CAST (748.58 AS decimal (6,2)),-3); |
1000.00 |
Exemples
R. 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 le jeu de résultats obtenu.
----------- -----------
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), ROUND(123.45, -2);
Voici le jeu de résultats obtenu.
---------- ----------
123.4500 100.00
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 le jeu de résultats obtenu.
--------
151.00
(1 row(s) affected)
--------
150.00
(1 row(s) affected)
Voir aussi
CEILING (Transact-SQL)
Types de données (Transact-SQL)
Expressions (Transact-SQL)
FLOOR (Transact-SQL)
Fonctions mathématiques (Transact-SQL)