如何将数字向上舍入到下一个整数

时间:2012-11-15 16:27:50

标签: c++ c

  

可能重复:
  Round up results of division to next integer number in c

是否有一个函数将double舍入到下一个整数?

1.8 -> 2
1.01 ->2
0.99 ->1

6 个答案:

答案 0 :(得分:7)

在C ++中查看std::floor()std::ceil()

答案 1 :(得分:1)

std::ceil()似乎就是你要找的 - 计算最接近的不小于arg的整数。

答案 2 :(得分:1)

您可以使用:

ceil(input)

floor(1+input);

答案 3 :(得分:1)

ceil(double x)返回不低于x

的下一个积分

http://www.cplusplus.com/reference/clibrary/cmath/ceil/

答案 4 :(得分:1)

基本功能是ceilfloortrunc;我想ceil是你的选择。

答案 5 :(得分:0)

floor(),总是向下舍入到较低的数字, ceil(),总是向更高的数字舍入。

要获得正常的舍入行为,您确实会使用floor(i + 0.5)。

这种方式会给你带负数的问题,这个问题的解决方法是使用ceil()作为负数:

  double round(double r) {
    return (r > 0.0) ? floor(r + 0.5) : ceil(r - 0.5);
}