代码改变世界

C语言除法向上、向下取整

2013-07-21 20:57  Linux开发菜鸟  阅读(19544)  评论(0编辑  收藏  举报

  C语言的math.h头文件中有ceil和floor两个函数:

  

double ceil(double x);
float ceilf(float x);
long double ceill(long double x);


double floor(double x);
float floorf(float x);
long double floorl(long double x);

  上面一个是把一个浮点数向上取整,下面一个是向下取整。于是当整数除法向上取整的时候就会出现这种情况:

int a = 10, b = 3,  c = 0;

c = (int)ceil((float)a / (float)b);

  进行了几次类型转换最终实现了向上取整。其实不需要那么麻烦,对于两个正整数,实现向上取整只需要:

c = (a + b - 1) / b;

  不需要转换类型,也不需要调用函数,当然这只是对正整数适用。