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;
不需要轉換類型,也不需要調用函數,當然這只是對正整數適用。