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

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;

版权声明:本文为angel_happy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。