为了账号安全,请及时绑定邮箱和手机立即绑定

以下这个问题是关于求教类似INT函数的向上取整函数的!

以下这个问题是关于求教类似INT函数的向上取整函数的!

回首忆惘然 2021-12-30 15:11:35
请问什么是向上取整?我的理解是通过向上取整函数返回的值是大于或等于x的最小整数。比如6.0它向上取整仍是6,而不是变成7?这样理解有错吗?另一个问题:需采用什么函数,比如写出INT(x)就知道是向下取整我想要的是类似这种函数,只有一个参数在网上看到这种int(A1+1)表示向上取整的,但是如果A1=6,这样函数出来的结果不是变成7了?
查看完整描述

3 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

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);

查看完整回答
反对 回复 2022-01-03
?
青春有我

TA贡献1784条经验 获得超8个赞

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。



查看完整回答
反对 回复 2022-01-03
?
潇湘沐

TA贡献1816条经验 获得超6个赞


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;

如果负数用减法计算。

不知道我理解的对不对....



查看完整回答
反对 回复 2022-01-03
  • 3 回答
  • 0 关注
  • 175 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信