ceilf (Numerics) – C 中文开发手册

[
  •   C 语言中文开发手册

    ceilf (Numerics) - C 中文开发手册

    在头文件<math.h>中定义
    float ceilf( float arg ); (1) (since C99)
    double ceil( double arg ); (2)
    long double ceill( long double arg ); (3) (since C99)
    Defined in header <tgmath.h>
    #define ceil( arg ) (4) (since C99)

    1-3)计算不小于的最小整数值arg。4)类型 - 通用宏:如果arg有类型long double,ceill被调用。否则,如果arg有整数类型或类型double,ceil则调用。否则,ceilf被调用。

    参数

    arg - 浮点值

    返回值

    如果没有发生错误arg,则返回不小于的最小整数值,即⌈arg⌉。返回值论据

    错误处理

    按照math_errhandling中的指定报告错误。如果实现支持IEEE浮点运算(IEC 60559),当前的舍入模式不起作用。 如果arg是±∞,则返回,未修改如果arg为±0,则返回,未修改如果arg是NaN,则返回NaN

    笔记

    FE_INEXACT 在舍入非整数有限值时可能(但不是必须))。最大的可表示浮点值是所有标准浮点格式中的精确整数,因此该函数不会自行溢出; 但是intmax_t,当存储在整数变量中时,结果可能会溢出任何整数类型(包括)。这个函数(用于双参数)的行为就像(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); // or 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标准(ISO / IEC 9899:2011): 7.12.9.1细胞功能(p:251) 7.25类型通用数学<tgmath.h>(p:373-375) F.10.6.1 ceil函数(p:526) C99标准(ISO / IEC 9899:1999): 7.12.9.1细胞功能(p:231-232) 7.22类型通用数学<tgmath.h>(p:335-337) F.9.6.1 ceil函数(p:462-463) C89 / C90标准(ISO / IEC 9899:1990): 4.5.6.1 ceil函数

  •   C 语言中文开发手册
    ]
    转载请保留页面地址:https://www.breakyizhan.com/c-3/27003.html

    posted on 2020-07-09 11:29  MrAit  阅读(264)  评论(0编辑  收藏  举报

    导航