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;
不需要转换类型,也不需要调用函数,当然这只是对正整数适用。