ceil, ceilf, ceill

来自cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本运算
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
指数函数
(C99)
(C99)
(C99)
(C99)
幂函数
(C99)
(C99)
三角及双曲函数
(C99)
(C99)
(C99)
误差及伽马函数
(C99)
(C99)
(C99)
(C99)
临近整数的浮点运算
ceil
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
浮点数操作函数
(C99)(C99)
(C99)
(C99)
分类
(C99)
(C99)
(C99)
类型
(C99)(C99)
宏常量
 
定义于头文件 <math.h>
float       ceilf( float arg );
(1) (C99 起)
double      ceil( double arg );
(2)
long double ceill( long double arg );
(3) (C99 起)
定义于头文件 <tgmath.h>
#define ceil( arg )
(4) (C99 起)
1-3) 计算不小于 arg 的最小整数值。
4) 泛型宏:若 arg 拥有 long double 类型,则调用 ceill 。否则,若 arg 拥有整数类型或 double 类型,则调用 ceil 。否则,调用 ceilf

参数

arg - 返回值

返回值

若不出现错误,则返回不小于 arg 的最小整数值,即 ⌈arg⌉

返回值
math-ceil.svg
参数

错误处理

报告 math_errhandling 中指定的错误。

若实现支持 IEEE 浮点算术( IEC 60559 ),则

  • 当前舍入模式无效。
  • arg 为 ±∞ ,则返回不修改的参数
  • arg 为 ±0 ,则返回不修改的参数
  • 若 arg 为 NaN ,则返回 NaN

注意

舍入非整数有限值时,可以(但不要求)引发 FE_INEXACT

所有标准浮点格式中的最大可表示浮点值都是准确的整数,故此函数自身决不上溢;然而存储于整数对象时,结果可以溢出任何整数类型(包含 intmax_t )。

此函数( double 参数的)表现如同(除了不引发 FE_INEXACT 的自由)实现如下

#include <math.h>
#include <fenv.h>
#pragma STDC FENV_ACCESS ON
double ceil(double x)
{
    double result;
    int save_round = fegetround();
    fesetround(FE_UPWARD);
    result = rint(x); // 或 nearbyint 
    fesetround(save_round);
    return result;
}

示例

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

可能的输出:

ceil(+2.4) = +3.0
ceil(-2.4) = -2.0
ceil(-0.0) = -0.0
ceil(-Inf) = -inf

引用

  • C11 standard (ISO/IEC 9899:2011):
  • 7.12.9.1 The ceil functions (p: 251)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • F.10.6.1 The ceil functions (p: 526)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.12.9.1 The ceil functions (p: 231-232)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • F.9.6.1 The ceil functions (p: 462-463)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.5.6.1 The ceil function

参阅

计算不大于给定值的最大整数
(函数)
(C99)(C99)(C99)
取整到绝对值不大于给定值的最接近整数
(函数)
(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)
取整到最接近的整数,在相邻整数正中间时取远离零的数
(函数)
用当前舍入模式取整到整数
(函数)
(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)
使用当前舍入模式取整到整数,若结果有误则产生异常
(函数)