请提供一些见解.
我想到一个简单的方法:将num转换成一个字符串,找到小数点的索引,检查小数部分是否大于0.如果是,返回num 1 else返回num.但是我想避免使用字符串转换
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,则上述功能将失败.