MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment ROUND() fonctionne dans MariaDB

Dans MariaDB, ROUND() est une fonction numérique intégrée qui arrondit son argument à un nombre donné de décimales.

Syntaxe

La fonction peut être utilisée des deux manières suivantes :

ROUND(X)
ROUND(X,D)

X est la valeur à arrondir, et D est un argument facultatif qui spécifie le nombre de décimales auxquelles l'arrondir.

Exemple

Voici un exemple :

SELECT ROUND(7.5);

Résultat :

+------------+
| ROUND(7.5) |
+------------+
|          8 |
+------------+

Passer une valeur négative produit le résultat suivant :

SELECT ROUND(-7.5);

Résultat :

+-------------+
| ROUND(-7.5) |
+-------------+
|          -8 |
+-------------+

Spécifiez les décimales

Par défaut, le ROUND() La fonction arrondit la valeur à zéro décimale. Nous pouvons spécifier le nombre de décimales pour arrondir la valeur en passant un deuxième argument.

Exemple :

SELECT ROUND(7.5164, 2);

Résultat :

+------------------+
| ROUND(7.5164, 2) |
+------------------+
|             7.52 |
+------------------+

Décimales négatives

Le deuxième argument peut être une valeur négative si nécessaire. Le passage d'une valeur négative entraîne des chiffres vers la gauche de la décimale pour devenir zéro.

Exemple :

SELECT ROUND(3724.51, -2);

Résultat :

+--------------------+
| ROUND(3724.51, -2) |
+--------------------+
|               3700 |
+--------------------+

Comparé à FLOOR()

Le ROUND() la fonction est différente de FLOOR() une fonction. Le ROUND() La fonction arrondit le nombre vers le haut dans certains cas et vers le bas dans d'autres. Le FLOOR() fonction, d'autre part, renvoie toujours la plus grande valeur entière non supérieure à son argument.

Voici une comparaison pour illustrer cette différence :

SELECT 
    FLOOR(3.6789),
    ROUND(3.6789);

Résultat :

+---------------+---------------+
| FLOOR(3.6789) | ROUND(3.6789) |
+---------------+---------------+
|             3 |             4 |
+---------------+---------------+

Aussi, FLOOR() n'accepte pas un deuxième argument comme ROUND() fait.

ROUND() est également différent de TRUNCATE() fonction, qui tronque simplement le nombre à une décimale donnée, sans aucun arrondi.

Arguments non numériques

Voici ce qui se passe lorsque nous fournissons un argument non numérique :

SELECT ROUND('Ten');

Résultat :

+--------------+
| ROUND('Ten') |
+--------------+
|            0 |
+--------------+
1 row in set, 1 warning (0.028 sec)

Vérifions l'avertissement :

SHOW WARNINGS;

Résultat :

+---------+------+-----------------------------------------+
| Level   | Code | Message                                 |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' |
+---------+------+-----------------------------------------+

Arguments manquants

Appel de ROUND() sans argument génère une erreur :

SELECT ROUND();

Résultat :

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ROUND'