ROUND (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans 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 ] )  

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

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)