Partager via


ROUND (Transact-SQL)

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

Arguments

numeric_expression

Expression de catégorie de type de données numérique exact ou approximatif.

length

La précision à laquelle 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

Le type d’opération à réaliser. La fonction doit être Tinyint, SmallInt ou Int. Lorsque la fonction est omise ou a une valeur de 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 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) décimale(p, s)
Catégorie money et smallmoney money
Catégorie float et real float

Remarques

  • ROUND Retourne toujours une valeur. Si la longueur est négative et supérieure au nombre de chiffres avant le point décimal, ROUND il revient 0.

    Exemple Résultats
    ROUND(748.58, -4) 0
  • ROUND Rend un numeric_expression arrondi, quel que soit le type de données, lorsque la longueur est un nombre négatif.

    Exemples Résultats
    ROUND(748.58, -1) 750.00
    ROUND(748.58, -2) 700.00
    ROUND(748.58, -3) Cela entraîne un débordement arithmétique, car 748,58 passe par défaut à décimal(5, 2), qui ne peut pas retourner 1000.00.
  • Pour arrondir à quatre chiffres, changez le type de données de l’entrée. Par exemple :

    SELECT ROUND(CAST (748.58 AS DECIMAL (6, 2)), -3);
    

    Voici le jeu de résultats.

    1000.00
    
  • ROUND Romps l’égalité en arrondissant la moitié loin de zéro (également appelé arrondi commercial).

    Exemples Résultats
    ROUND(1.15, 1) 1.2
    ROUND(-1.15, 1) -1.2

Exemples

R. Utilisez ROUND et estimations

L’exemple suivant montre deux expressions qui démontrent qu’en utilisant ROUND, le dernier chiffre est toujours une estimation.

SELECT ROUND(123.9994, 3),
       ROUND(123.9995, 3);
GO

Voici le jeu de résultats.

----------- -----------
123.9990    124.0000

B. Utiliser les approximations ROUND et arrondissement

Cet exemple montre des arrondis et des approximations.

SELECT ROUND(123.4545, 2),
       ROUND(123.45, -2);

Voici le jeu de résultats.

----------  ----------
123.4500    100.00

C. Utilisez ROUND pour tronquer

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

Voici le jeu de résultats.

151.00
SELECT ROUND(150.75, 0, 1);
GO

Voici le jeu de résultats.

150.00