Namespaces
Variants

floor, floorf, floorl

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
Power functions
Trigonometric and hyperbolic functions
Nearest integer floating-point
floor
(C99) (C99) (C99)
(C99)

(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
Arguments and return values
Error handling
Fast operation indicators
Défini dans l'en-tête <math.h>
float floorf ( float arg ) ;
(1) (depuis C99)
double floor ( double arg ) ;
(2)
long double floorl ( long double arg ) ;
(3) (depuis C99)
Défini dans l'en-tête <tgmath.h>
#define floor( arg )
(4) (depuis C99)
1-3) Calcule la plus grande valeur entière inférieure ou égale à arg .
4) Macro générique de type : Si arg a le type long double , floorl est appelé. Sinon, si arg a un type entier ou le type double , floor est appelé. Sinon, floorf est appelé.

Table des matières

Paramètres

arg - valeur à virgule flottante

Valeur de retour

Si aucune erreur ne se produit, la plus grande valeur entière inférieure ou égale à arg , c'est-à-dire ⌊arg⌋ , est renvoyée.

Valeur de retour
math-floor.svg
Argument

Gestion des erreurs

Les erreurs sont signalées comme spécifié dans math_errhandling .

Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559) :

  • Le mode d'arrondi actuel n'a aucun effet.
  • Si arg est ±∞, il est retourné, non modifié.
  • Si arg est ±0, il est retourné, non modifié.
  • Si arg est NaN, NaN est retourné.

Notes

FE_INEXACT peut être (mais n'est pas obligatoirement) déclenchée lors de l'arrondi d'une valeur finie non entière.

Les plus grandes valeurs représentables en virgule flottante sont des entiers exacts dans tous les formats standard de virgule flottante, donc cette fonction ne provoque jamais de dépassement de capacité par elle-même ; cependant le résultat peut dépasser la capacité de tout type entier (y compris intmax_t ), lorsqu'il est stocké dans une variable entière.

Exemple

#include <math.h>
#include <stdio.h>
int main(void)
{
    printf("floor(+2.7) = %+.1f\n", floor(2.7));
    printf("floor(-2.7) = %+.1f\n", floor(-2.7));
    printf("floor(-0.0) = %+.1f\n", floor(-0.0));
    printf("floor(-Inf) = %+f\n",   floor(-INFINITY));
}

Sortie possible :

floor(+2.7) = +2.0
floor(-2.7) = -3.0
floor(-0.0) = -0.0
floor(-Inf) = -inf

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 7.12.9.2 Les fonctions floor (p: TBD)
  • 7.25 Mathématiques génériques de type <tgmath.h> (p: TBD)
  • F.10.6.2 Les fonctions floor (p: TBD)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.12.9.2 Les fonctions floor (p: TBD)
  • 7.25 Mathématiques génériques de type <tgmath.h> (p: TBD)
  • F.10.6.2 Les fonctions floor (p: TBD)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.12.9.2 Les fonctions floor (p: 251)
  • 7.25 Mathématiques génériques de type <tgmath.h> (p: 373-375)
  • F.10.6.2 Les fonctions floor (p: 526)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.12.9.2 Les fonctions floor (p: 232)
  • 7.22 Mathématiques génériques de type <tgmath.h> (p: 335-337)
  • F.9.6.2 Les fonctions floor (p: 463)
  • Norme C89/C90 (ISO/CEI 9899:1990) :
  • 4.5.6.3 La fonction floor

Voir aussi

(C99) (C99)
calcule le plus petit entier non inférieur à la valeur donnée
(fonction)
(C99) (C99) (C99)
arrondit à l'entier le plus proche dont la magnitude n'est pas supérieure à la valeur donnée
(fonction)
(C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99)
arrondit à l'entier le plus proche, en arrondissant à l'opposé de zéro dans les cas médians
(fonction)