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

前端之家收集整理的这篇文章主要介绍了c – Ceil功能:我们该如何实现?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道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,则上述功能将失败.

猜你在找的C&C++相关文章