Catégories :

Fonctions numériques (arrondi et troncation)

FLOOR

Renvoie les valeurs de input_expr arrondies au nombre entier égal ou inférieur le plus proche ou à la valeur égale ou inférieure la plus proche avec le nombre spécifié de positions après le point décimal.

Voir aussi :

CEIL, ROUND, TRUNCATE , TRUNC

Syntaxe

FLOOR( <input_expr> [, <scale_expr> ] )
Copy

Arguments

input_expr

Valeur ou expression sur laquelle opérer. Le type de données doit être l’un des types de données numériques, tels que FLOAT ou NUMBER.

scale_expr

Nombre de chiffres que la sortie doit inclure après le point décimal. L’expression doit correspondre à un entier compris entre -38 et +38.

La valeur scale_expr par défaut est zéro, ce qui signifie que la fonction supprime tous les chiffres après le point décimal.

Pour plus d’informations sur les échelles négatives, voir les Notes d’utilisation ci-dessous.

Renvoie

Le type de données de la valeur renvoyée est NUMBER (précision, échelle).

Si l’échelle d’entrée était supérieure ou égale à zéro, l’échelle de sortie correspond généralement à l’échelle d’entrée.

Si l’échelle d’entrée était négative, l’échelle de sortie est 0.

Par exemple :
  • Le type de données renvoyé par FLOOR(3.14, 1) est NUMBER(4, 1).

  • Le type de données renvoyé par FLOOR(3.14, 0) est NUMBER(4, 0).

  • Le type de données renvoyé par FLOOR(33.33, -1) est NUMBER(5, 0).

Si l’échelle est égale à zéro, la valeur est effectivement un entier.

Notes sur l’utilisation

  • Si scale_expr est négatif, alors il spécifie le nombre de positions avant le point décimal auquel le nombre doit être ajusté. Par exemple, si l’échelle est -2, le résultat est un multiple de 100.

  • Si scale_expr est plus grand que l’échelle d’expression en entrée, la fonction n’a aucun effet.

  • Si input_expr ou scale_expr est NULL, le résultat est NULL.

  • Lorsque les nombres négatifs sont arrondis au nombre inférieur le plus bas, la valeur est plus éloignée de 0. Par exemple, FLOOR(-1,1) est -2, et non -1.

  • Si vous arrondissez le nombre à la baisse pour amener le nombre en dehors de la plage de valeurs du type de données, une erreur est renvoyée.

Exemples

Cet exemple illustre la fonction sans le paramètre scale_expr :

SELECT FLOOR(135.135), FLOOR(-975.975);
+----------------+-----------------+
| FLOOR(135.135) | FLOOR(-975.975) |
|----------------+-----------------|
|            135 |            -976 |
+----------------+-----------------+
Copy

Cet exemple illustre la fonction avec le paramètre scale_expr, y compris avec l’échelle définie sur des nombres négatifs :

Créez et remplissez une table :

CREATE TABLE test_floor (n FLOAT, scale INTEGER);
INSERT INTO test_floor (n, scale) VALUES
   (-975.975, -1),
   (-975.975,  0),
   (-975.975,  2),
   ( 135.135, -2),
   ( 135.135,  0),
   ( 135.135,  1),
   ( 135.135,  3),
   ( 135.135, 50),
   ( 135.135, NULL)
   ;
Copy

Sortie :

SELECT n, scale, FLOOR(n, scale)
  FROM test_floor
  ORDER BY n, scale;
+----------+-------+-----------------+
|        N | SCALE | FLOOR(N, SCALE) |
|----------+-------+-----------------|
| -975.975 |    -1 |        -980     |
| -975.975 |     0 |        -976     |
| -975.975 |     2 |        -975.98  |
|  135.135 |    -2 |         100     |
|  135.135 |     0 |         135     |
|  135.135 |     1 |         135.1   |
|  135.135 |     3 |         135.135 |
|  135.135 |    50 |         135.135 |
|  135.135 |  NULL |            NULL |
+----------+-------+-----------------+
Copy