非常教程

C参考手册

数值 | Numerics

floorl

在头文件<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

-

floating point value

返回值

如果没有发生错误,则返回不大于arg的最大整数值,即⌊arg⌋。

返回值

floorl

观点

错误处理

按照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

参考

  • C11标准(ISO / IEC 9899:2011):
    • 7.12.9.2 floor 功能(p:251)
    • 7.25类型通用数学<tgmath.h>(p:373-375)
    • F.10.6.2floor功能(p:526)
  • C99标准(ISO / IEC 9899:1999):
    • 7.12.9.2floor功能(p:232)
    • 7.22类型通用数学<tgmath.h>(p:335-337)
    • F.9.6.2 floor 功能(p:463)
  • C89 / C90标准(ISO / IEC 9899:1990):
    • 4.5.6.3 floor 功能

扩展内容

ceilceilfceill(C99)(C99)

计算不小于给定值的最小整数(函数)

trunctruncftruncl(C99)(C99)(C99)

四舍五入到最接近的整数,其大小不超过给定值(函数)

roundlroundllround(C99)(C99)(C99)

舍入到最接近的整数,在中途情况下从零开始舍去(函数)

| 用于floor的C ++文档 |

C

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。