【发布时间】:2017-06-07 23:10:02
【问题描述】:
我刚刚实现了一行代码,其中两个数字需要相除,结果需要四舍五入到下一个整数。我开始很天真:
i_quotient = ceil(a/b);
由于数字 a 和 b 都是整数,所以这不起作用:除法作为整数除法执行,默认情况下四舍五入,所以我需要强制除法为浮点数点操作:
i_quotient = ceil((double) a / b);
现在这似乎可行,但它留下一个警告说我正在尝试将双精度分配给一个整数,实际上,在头文件“math.h”之后,ceil() 函数的返回类型是“双”,现在我迷路了:舍入函数返回双精度是什么意思?有人能告诉我吗?
【问题讨论】:
-
如果参数太大而无法用整数类型表示,您将如何指定
ceil?例如。1E500? -
你为什么不做
i_quotient = (a + b - 1) / b;?
标签: c types type-conversion