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
Definido en el encabezado <math.h>
float floorf ( float arg ) ;
(1) (desde C99)
double floor ( double arg ) ;
(2)
long double floorl ( long double arg ) ;
(3) (desde C99)
Definido en el encabezado <tgmath.h>
#define floor( arg )
(4) (desde C99)
1-3) Calcula el valor entero más grande no mayor que arg .
4) Macro genérica de tipos: Si arg tiene tipo long double , floorl es llamado. De lo contrario, si arg tiene tipo entero o el tipo double , floor es llamado. De lo contrario, floorf es llamado.

Contenidos

Parámetros

arg - valor de punto flotante

Valor de retorno

Si no ocurren errores, se devuelve el mayor valor entero no mayor que arg , es decir ⌊arg⌋ .

Valor de retorno
math-floor.svg
Argumento

Manejo de errores

Los errores se reportan como se especifica en math_errhandling .

Si la implementación soporta aritmética de punto flotante IEEE (IEC 60559):

  • El modo de redondeo actual no tiene efecto .
  • Si arg es ±∞, se devuelve sin modificaciones.
  • Si arg es ±0, se devuelve sin modificaciones.
  • Si arg es NaN, se devuelve NaN.

Notas

FE_INEXACT puede (pero no está obligado a) activarse al redondear un valor finito no entero.

Los valores de punto flotante más grandes representables son enteros exactos en todos los formatos estándar de punto flotante, por lo que esta función nunca desborda por sí misma; sin embargo, el resultado puede desbordar cualquier tipo entero (incluyendo intmax_t ), cuando se almacena en una variable entera.

Ejemplo

#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));
}

Salida posible:

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

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.12.9.2 Las funciones floor (p: TBD)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: TBD)
  • F.10.6.2 Las funciones floor (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.12.9.2 Las funciones floor (p: TBD)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: TBD)
  • F.10.6.2 Las funciones floor (p: TBD)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.12.9.2 Las funciones floor (p: 251)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: 373-375)
  • F.10.6.2 Las funciones floor (p: 526)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.12.9.2 Las funciones floor (p: 232)
  • 7.22 Matemáticas genéricas de tipo <tgmath.h> (p: 335-337)
  • F.9.6.2 Las funciones floor (p: 463)
  • Estándar C89/C90 (ISO/IEC 9899:1990):
  • 4.5.6.3 La función floor

Véase también

(C99) (C99)
calcula el entero más pequeño no menor que el valor dado
(función)
(C99) (C99) (C99)
redondea al entero más cercano no mayor en magnitud que el valor dado
(función)
(C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99)
redondea al entero más cercano, redondeando lejos de cero en casos intermedios
(función)