floor, floorf, floorl

来自cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本运算
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大/最小运算
(C99)
(C99)
指数函数
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
幂函数
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
三角及双曲函数
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
浮点数的临近整数
floor
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮点数操作
(C99)(C99)
(C99)(C23)
(C99)
窄化运算
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量与量指数函数
十进制重编码函数
全序与载荷函数
分类
(C99)
(C99)
(C99)
(C23)
误差及伽马函数
(C99)
(C99)
(C99)
(C99)
类���
宏常量
特殊浮点数值
(C99)(C23)
参数与返回值
错误处理
快速运算指示
 
在标头 <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 The floor functions (第 TBD 页)
  • 7.25 Type-generic math <tgmath.h> (第 TBD 页)
  • F.10.6.2 The floor functions (第 TBD 页)
  • C17 标准(ISO/IEC 9899:2018):
  • 7.12.9.2 The floor functions (第 TBD 页)
  • 7.25 Type-generic math <tgmath.h> (第 TBD 页)
  • F.10.6.2 The floor functions (第 TBD 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.12.9.2 The floor functions (第 251 页)
  • 7.25 Type-generic math <tgmath.h> (第 373-375 页)
  • F.10.6.2 The floor functions (第 526 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.12.9.2 The floor functions (第 232 页)
  • 7.22 Type-generic math <tgmath.h> (第 335-337 页)
  • F.9.6.2 The floor functions (第 463 页)
  • C89/C90 标准(ISO/IEC 9899:1990):
  • 4.5.6.3 The floor function

[编辑] 参阅

(C99)(C99)
计算不小于给定值的最小整数
(函数) [编辑]
(C99)(C99)(C99)
取整到绝对值不大于给定值的最接近整数
(函数) [编辑]
(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)
取整到最接近的整数,在相邻整数正中间时取远离零的数
(函数) [编辑]
floor 的 C++ 文档