类似INT函数的向上取整函数

来源:百度知道 编辑:UC知道 时间:2024/06/20 21:00:36
请问什么是向上取整?我的理解是通过向上取整函数返回的值是大于或等于x的最小整数。比如6.0它向上取整仍是6,而不是变成7?
这样理解有错吗?
另一个问题:需采用什么函数,比如写出INT(x)就知道是向下取整
我想要的是类似这种函数,只有一个参数

在网上看到这种int(A1+1)表示向上取整的,但是如果A1=6,这样函数出来的结果不是变成7了?

1.你的理解是对的。
2.int(x)不一定是向下取整,int(-1.5)=-1,但是[-1.5]应该等于-2,这才叫向下取整。
3.int(A1+1)这种形式是不对的。
4.很多语言里都有向下取整函数floor()和向上取整函数ceil(),如果是C语言的话要注意类型转换,一下是函数原型:
#include <math.h>
double floor(double x);
double ceil(double x);
float floorf(float x);
float ceilf(float x);

C语言有以下几种取整方法:
1、直接赋值给整数变量。如:
int i = 2.5; 或 i = (int) 2.5;
这种方法采用的是舍去小数部分
2、C/C++中的整数除法运算符“/”本身就有取整功能(int / int),但是整数除法对负数的取整结果和使用的C编译器有关。
3、使用floor函数。floor(x)返回的是小于或等于x的最大整数。如:
floor(2.5) = 2
floor(-2.5) = -3
4、使用ceil函数。ceil(x)返回的是大于x的最小整数。如:
ceil(2.5) = 3
ceil(-2.5) = -2
floor()是向负无穷大舍入,floor(-2.5) = -3;ceil()是向正无穷大舍入,ceil(-2.5) = -2。


int i = 2.1; 或 i = (int) 2.1;

i= 2;

需要向上取整:
int i = (int)(2.1 + 0.9);
i= 3

int i = (int)(2.9 + 0.9);
i= 3;

需要四舍五入
int i = (int)(2.1 + 0.5);
i= 2;
int i = (int)(2.5 + 0.5);
i= 3;