FLOOR |
Au plus bas |
---|---|
Langage C++ | cmath (math.h) |
Syntaxe
float floor(float n); |
double floor(double n) |
long double floor(long double n); |
Paramètres
Nom | Description |
---|---|
n | Ce paramètre permet d'indiquer l'expression contenant le nombre à traiter |
Description
Cette fonction retourne la valeur minimale d'un nombre, soit l'entier le plus proche inférieur ou égal au nombre.
Remarques
- La fonction floor() renvoie le plus grand entier (représenté par une valeur à virgule flottante) non supérieur à n. Par exemple, soit la valeur 1.02, la fonction floor() retournera 1.0. Soit la valeur -1,02, la fonction floor() renverrait -2,0.
- Définition et utilité : La fonction floor en C++ est utilisée pour arrondir un nombre à l'entier inférieur le plus proche. Elle est définie dans la bibliothèque <cmath> et prend en entrée un nombre à virgule flottante. Le résultat est un nombre à virgule flottante représentant l'entier étant inférieur ou égal au nombre donné, ce qui peut être utile dans des situations nécessitant un arrondi vers le bas.
- Comportement avec les nombres positifs et négatifs : Le comportement de la fonction floor varie selon que le nombre d'entrée est positif ou négatif. Si le paramètre est positif, floor renverra simplement l'entier inférieur ou égal. Par exemple, floor(3.7) renverra 3.0. En revanche, pour un nombre négatif, le résultat sera l'entier inférieur le plus proche, c'est-à-dire que le résultat sera plus négatif que le nombre d'origine. Par exemple, floor(-3.7) renverra -4.0.
- Conservation du type de donnée : Bien que la fonction retourne un entier, elle renvoie un nombre à virgule flottante du même type que le paramètre d'entrée (généralement double). Cela signifie que même si le résultat est un entier, il peut toujours avoir une partie fractionnaire nulle. Par exemple, floor(2.0) renverra 2.0, et non simplement 2.
- Comparaison avec ceil : La fonction floor est l'opposée de la fonction ceil, arrondissant un nombre à l'entier supérieur le plus proche. Si floor arrondit vers le bas, ceil arrondit vers le haut. Par exemple, pour 3.2, floor(3.2) retournera 3.0, tandis que ceil(3.2) retournera 4.0. Ces deux fonctions sont souvent utilisées ensemble pour manipuler des nombres flottants dans des contextes spécifiques.
- Utilisation dans les calculs et les algorithmes : La fonction floor est couramment utilisée dans des calculs où il est nécessaire de s'assurer qu'un nombre soit réduit ou tronqué sans excéder une certaine valeur. Par exemple, elle est souvent utilisée dans des algorithmes de division pour obtenir un quotient entier ou dans des calculs de mise en page pour déterminer combien d'éléments peuvent être placés sur une page, sans dépasser un nombre donné.
- Comportement avec des nombres entiers : Si vous passez un nombre entier à la fonction floor, le résultat sera ce même entier. Par exemple, floor(5) renverra 5.0. En d'autres termes, si le paramètre n'a pas de partie fractionnaire, la fonction n'effectuera aucune modification, mais elle renverra tout de même un nombre à virgule flottante.
- Précision et portabilité : Comme la plupart des fonctions mathématiques en C++, floor peut être affectée par la précision des nombres à virgule flottante, en particulier sur différentes plateformes ou avec différents types de données (comme float, double, ou long double). Par exemple, selon l'implémentation et l'architecture de la machine, des erreurs d'arrondi peuvent survenir pour des nombres très grands ou très petits. Il est important de bien comprendre le comportement des nombres flottants dans votre application et de tester la fonction sur la plateforme cible pour garantir sa précision.
Exemple
Voici un exemple montrant une utilisation plus classique de cette fonction :

- #include <iostream>
- #include <cmath>
-
- int main()
- {
- std::cout << "FLOOR(1)=" << floor(1) << std::endl;
- std::cout << "FLOOR(1.1)=" << floor(1.1) << std::endl;
- std::cout << "FLOOR(1.7)=" << floor(1.7) << std::endl;
- std::cout << "FLOOR(-1)=" << floor(-1) << std::endl;
- std::cout << "FLOOR(-1.1)=" << floor(-1.1) << std::endl;
- std::cout << "FLOOR(-1.7)=" << floor(-1.7) << std::endl;
- std::cout << "FLOOR(30.2)=" << floor(30.2) << std::endl;
- std::cout << "FLOOR(-35.4)=" << floor(-35.4) << std::endl;
- return 0;
- }
on obtiendra le résultat suivant :
FLOOR(1)=1FLOOR(1.1)=1
FLOOR(1.7)=1
FLOOR(-1)=-1
FLOOR(-1.1)=-2
FLOOR(-1.7)=-2
FLOOR(30.2)=30
FLOOR(-35.4)=-36
Voir également
Langage de programmation - C++ - Référence procédures et fonctions - exp
Langage de programmation - C++ - Référence procédures et fonctions - pow
Langage de programmation - C - Référence procédures et fonctions - floor
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 731.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 103.
Dernière mise à jour : Lundi, le 3 août 2015