Dans MySQL, le ROUND()
permet d'arrondir un nombre vers le haut ou vers le bas à un nombre donné de décimales.
La façon dont cela fonctionne est que vous fournissez le nombre comme argument et vous avez la possibilité de choisir le nombre de décimales auquel arrondir le nombre. Si vous ne spécifiez pas le nombre de décimales, le résultat n'aura pas de décimales.
Syntaxe
Cette fonction peut être utilisée de l'une des manières suivantes :
ROUND(X) ROUND(X,D)
Où X
est le nombre et D
est le nombre de décimales auquel vous voulez arrondir. Si vous omettez D
, le nombre sera arrondi à zéro décimale.
Aussi, D
peut être négatif. Cela se traduit par D
chiffres à gauche de la virgule décimale de la valeur X
devenir zéro.
Exemple 1 - Utilisation d'un argument
Voici un exemple de base pour montrer ce qui se passe lorsque nous ne fournissons pas de deuxième argument.
SELECT ROUND(1.49) Result;
Résultat :
+--------+ | Result | +--------+ | 1 | +--------+
Dans ce cas, le nombre est arrondi à l'entier inférieur le plus proche.
Si nous augmentons la partie fractionnaire, voici ce qui se passe :
SELECT ROUND(1.50) Result;
Résultat :
+--------+ | Result | +--------+ | 2 | +--------+
Dans ce cas, le nombre est arrondi à la place.
Exemple 2 - Utilisation de deux arguments
Voici comment nous pouvons utiliser un deuxième argument pour spécifier les décimales auxquelles arrondir le nombre.
SELECT ROUND(1.234, 2) Result;
Résultat :
+--------+ | Result | +--------+ | 1.23 | +--------+
Et voici ce qui se passe lorsque j'augmente le dernier chiffre à 5 :
SELECT ROUND(1.235, 2) Result;
Résultat :
+--------+ | Result | +--------+ | 1.24 | +--------+
Bien sûr, nous pourrions utiliser beaucoup plus de décimales. Par exemple, nous pourrions réduire de nombreuses décimales.
SELECT ROUND(1.23456789123456789, 8) Result;
Résultat :
+------------+ | Result | +------------+ | 1.23456789 | +------------+
Ou nous pourrions augmenter le nombre de décimales.
SELECT ROUND(1.234, 8) Result;
Résultat :
+------------+ | Result | +------------+ | 1.23400000 | +------------+
Exemple 3 - Utilisation d'une valeur négative pour le deuxième argument
Voici comment nous pouvons utiliser une valeur négative sur le deuxième argument pour que des parties de la partie non fractionnaire soient arrondies à zéro.
SELECT ROUND(123.456, -1) Result;
Résultat :
+--------+ | Result | +--------+ | 120 | +--------+
Et voici comment cela s'arrondit si nous augmentons le 3
à 5
ou plus.
SELECT ROUND(125.456, -1) Result;
Résultat :
+--------+ | Result | +--------+ | 130 | +--------+
Exemple 4 - Arrondir les nombres négatifs par rapport aux nombres positifs
Comme vu dans les exemples précédents, lors de l'utilisation de nombres positifs, une valeur avec une partie fractionnaire de 0,5 ou plus est arrondie à l'entier supérieur.
Cependant, lorsque vous utilisez des nombres négatifs, ces valeurs sont arrondies vers le bas .
SELECT ROUND(1.50) Positive, ROUND(-1.50) Negative;
Résultat :
+----------+----------+ | Positive | Negative | +----------+----------+ | 2 | -2 | +----------+----------+
Arrondir les nombres approximatifs
La règle d'arrondi ci-dessus ne s'applique qu'aux nombres à valeur exacte. Pour les nombres à valeur approximative, le résultat dépend de la bibliothèque C. La documentation MySQL indique ceci à propos des nombres à valeur approximative :
Sur de nombreux systèmes, cela signifie que
ROUND()
utilise la règle « arrondir au nombre pair le plus proche » :une valeur avec une partie fractionnaire exactement à mi-chemin entre deux nombres entiers est arrondie au nombre entier pair le plus proche.
Et voici l'exemple utilisé sur cette page :
SELECT ROUND(2.5), ROUND(25E-1);
Résultat :
+------------+--------------+ | ROUND(2.5) | ROUND(25E-1) | +------------+--------------+ | 3 | 2 | +------------+--------------+