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
Определено в заголовке <math.h>
float floorf ( float arg ) ;
(1) (начиная с C99)
double floor ( double arg ) ;
(2)
long double floorl ( long double arg ) ;
(3) (начиная с C99)
Определено в заголовке <tgmath.h>
#define floor( arg )
(4) (начиная с C99)
1-3) Вычисляет наибольшее целое значение, не превышающее arg .
4) Макрос общего типа: Если arg имеет тип long double , floorl вызывается. В противном случае, если arg имеет целочисленный тип или тип double , floor вызывается. В противном случае floorf вызывается.

Содержание

Параметры

arg - значение с плавающей запятой

Возвращаемое значение

Если ошибок не возникает, возвращается наибольшее целочисленное значение, не превышающее arg , то есть ⌊arg⌋ .

Возвращаемое значение
math-floor.svg
Аргумент

Обработка ошибок

Ошибки сообщаются, как указано в math_errhandling .

Если реализация поддерживает арифметику с плавающей запятой IEEE (IEC 60559):

  • Текущий режим округления не оказывает влияния.
  • Если arg равен ±∞, он возвращается без изменений.
  • Если arg равен ±0, он возвращается без изменений.
  • Если arg является NaN, возвращается NaN.

Примечания

FE_INEXACT может (но не обязана) возбуждаться при округлении конечного нецелочисленного значения.

Наибольшие представимые значения с плавающей запятой являются точными целыми числами во всех стандартных форматах с плавающей запятой, поэтому эта функция никогда не переполняется сама по себе; однако результат может переполнить любой целочисленный тип (включая intmax_t ) при сохранении в целочисленной переменной.

Пример

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

Возможный вывод:

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

Ссылки

  • Стандарт C23 (ISO/IEC 9899:2024):
  • 7.12.9.2 Функции floor (стр.: TBD)
  • 7.25 Обобщенная математика <tgmath.h> (стр.: TBD)
  • F.10.6.2 Функции floor (стр.: TBD)
  • Стандарт C17 (ISO/IEC 9899:2018):
  • 7.12.9.2 Функции floor (стр.: TBD)
  • 7.25 Обобщенная математика <tgmath.h> (стр.: TBD)
  • F.10.6.2 Функции floor (стр.: TBD)
  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.12.9.2 Функции floor (стр. 251)
  • 7.25 Обобщенная математика <tgmath.h> (стр. 373-375)
  • F.10.6.2 Функции floor (стр. 526)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 7.12.9.2 Функции floor (стр. 232)
  • 7.22 Обобщенная математика <tgmath.h> (стр. 335-337)
  • F.9.6.2 Функции floor (стр. 463)
  • Стандарт C89/C90 (ISO/IEC 9899:1990):
  • 4.5.6.3 Функция floor

Смотрите также

(C99) (C99)
вычисляет наименьшее целое число, не меньшее заданного значения
(функция)
(C99) (C99) (C99)
округляет до ближайшего целого числа, не большего по модулю, чем заданное значение
(функция)
(C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99)
округляет до ближайшего целого числа, от нуля в случае равного расстояния
(функция)
C++ documentation для floor