- 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 :
Syntaxe¶
FLOOR( <input_expr> [, <scale_expr> ] )
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
ouscale_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 | +----------------+-----------------+
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) ;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 | +----------+-------+-----------------+