首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >楼层()和ceil()函数与在C中转换为整数的函数

问楼层()和ceil()函数与在C中转换为整数的函数
EN

Stack Overflow用户
提问于 2015-02-02 20:26:51
回答 1查看 6.3K关注 0票数 8

我正在编写一些C代码,以反复循环浮动的整数值。标准C数学库包括floor()和ceil()函数。我注意到,函数的一个更快的实现是直接转换为整数:

代码语言:javascript
复制
int up, down;
float test = 1.3548;

up = (int)(test + 1);  //ceil()
down  = (int)test;     //floor()

我做了一个快速检查,这似乎很好。

  1. 如果我需要一个整数,作为数组索引(也就是说,它总是返回正确的结果),这是一个可靠的上上下下方法吗?
  2. 速度的大幅度增长是否有一个强有力的原因?(在我的系统上,它的运行速度是math.h实现的3倍)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-02 20:31:44

函数ceil()和floor()将返回与使用

代码语言:javascript
复制
up = (int)(test + 1);
down  = (int)test;

当你有一个负数的时候。

如果你有:

代码语言:javascript
复制
float test = -1.3548;
up = (int)test;        // ceil()
down = (int)(test-1);  // floor()

当floor()是整数时,即使最后一条语句也不是计算test的好方法。

除非您想要以不同的方式处理正负数,以及test是整数的特殊情况,否则最好使用ceil()和floor()。

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

https://stackoverflow.com/questions/28286129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档