我刚刚实现了一行代码,其中需要对两个数字进行划分,结果需要四舍五入到下一个整数.我开始非常天真:
i_quotient = ceil(a/b);
作为数字a
并且b
都是整数,这不起作用:除法作为整数除法执行,默认情况下向下舍入,因此我需要强制除法为浮点运算:
i_quotient = ceil((double) a / b);
现在这似乎工作,但它留下一个警告说我正在尝试将一个double分配给一个整数,实际上,在头文件"math.h"之后,ceil()
函数的返回类型是"double",现在我失败了:返回双倍的舍入函数是什么意思?任何人都可以告诉我这件事吗?
double的范围可以大于任何整数类型.返回double
是确保结果类型具有可以处理所有可能输入的范围的唯一方法.