加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – Ceil功能:我们该如何实现?

发布时间:2020-12-16 05:31:51 所属栏目:百科 来源:网络整理
导读:我知道C为我们提供了一个ceil功能.对于实践,我想知道如何在C中实现ceil函数.方法的签名是 public static int ceil(float num) 请提供一些见解. 我想到一个简单的方法:将num转换成一个字符串,找到小数点的索引,检查小数部分是否大于0.如果是,返回num 1 else
我知道C为我们提供了一个ceil功能.对于实践,我想知道如何在C中实现ceil函数.方法的签名是
public static int ceil(float num)

请提供一些见解.

我想到一个简单的方法:将num转换成一个字符串,找到小数点的索引,检查小数部分是否大于0.如果是,返回num 1 else返回num.但是我想避免使用字符串转换

解决方法

这是一个真正的实数的正数(这使用的事实是,转换为(int)截断为零):
int ceil(float num) {
    int inum = (int)num;
    if (num == (float)inum) {
        return inum;
    }
    return inum + 1;
}

很容易将其扩展到负数.

你的问题要求一个函数返回int,但通常ceil()函数返回与它的参数相同的类型,所以没有范围的问题(即float ceil(float num)).例如,如果num为1e20,则上述功能将失败.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读