首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >上下舍入一个数字C++

上下舍入一个数字C++
EN

Stack Overflow用户
提问于 2016-10-07 12:07:39
回答 5查看 93K关注 0票数 23

我试着让我的程序把一个数字分别向上和向下舍入。

例如,如果这个数字是3.6,那么我的程序应该把最近的数字4集合起来,如果这个数字是3.4,它将被四舍五入到3。

我尝试使用ceil库来获得3项的平均值。

results = ceil((marks1 + marks2 + marks3)/3)

但是,ceil只对数字进行舍入,而不对数字进行滚动。

我偶然发现了一个算法

var roundedVal = Math.round(origVal*20)/20;

但我还是想不出解决问题的公式。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-10-07 12:11:26

代码语言:javascript
运行
AI代码解释
复制
std::ceil 

舍入到最近的整数。

代码语言:javascript
运行
AI代码解释
复制
std::floor 

舍入到最近的整数。

代码语言:javascript
运行
AI代码解释
复制
std::round 

执行您期望的行为

请给一个用例与数字,如果这不提供您所需的!

票数 39
EN

Stack Overflow用户

发布于 2016-10-07 14:04:43

您不需要一个函数来舍入C或C++。你可以用一个简单的技巧。添加0.5,然后强制转换为整数。不管怎么说,这大概都是一回事。

代码语言:javascript
运行
AI代码解释
复制
double d = 3.1415;
double d2 = 4.7;
int i1 = (int)(d + 0.5);
int i2 = (int)(d2 + 0.5);

i1是3,i2是5,你可以自己验证。

票数 10
EN

Stack Overflow用户

发布于 2016-10-07 12:10:06

你需要的函数叫做圆角,信不信由你。

ceil转起来,顺便说一句。也就是最接近的大整数。floor击倒。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39925020

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文