C/C++ 如何向上取整?

清泛原创
一般地,向上取整有两种方法:
#include <math.h>

int _tmain(int argc, _TCHAR* argv[])
{
	int a = 6, b = 5;

	//ceil函数
	printf("%d\n", (int)ceil((double)a / (double)b));

	//补整方法
	printf("%d\n", (a + b-1) / b);

	return 0;
}
运行结果:


注意:ceil函数参数是double类型。同理,double向下取整使用floor函数(整数直接除就ok)。

使用floor函数。floor(x)返回的是小于或等于x的最大整数。
如:     floor(10.5) == 10    floor(-10.5) == -11

使用ceil函数。ceil(x)返回的是大于x的最小整数。
如:     ceil(10.5) == 11    ceil(-10.5) ==-10

floor()是向负无穷大舍入,floor(-10.5) == -11

ceil()是向正无穷大舍入,ceil(-10.5) == -10

向上取整 向下取整 ceil floor

分享到:
评论加载中,请稍后...
创APP如搭积木 - 创意无限,梦想即时!
回到顶部