C++ 有需求 需要对数字向下取整 int和 double 混淆 已解决

       

C++ 有需求 需要对数字向下取整 int和 double 混淆 已解决_第1张图片

         在项目使用中。 原本以为 直接 ceil(13/ 2)  = 3  但是实际是错误的。 需要 是  ceil(5.0 / 2)  double 才能向上取整。结果有大佬 直接使用两种办法 能解决问题。

        由于传入的参数和返回的参数都是double,所以需要手动转化

#include 
using namespace std;

int main() {
    printf("%d\n", (int)ceil(1.0*5/2)); // 输出3
    return 0;
}

另外一种解决办法 使用公式

  

#include 
using namespace std;

int main() {
    int a = 5, b = 2;
    //C++中的整除默认下取整
    printf("%d\n", (a+b-1) / b);  // 输出3
    return 0;
}

也能正确解决问题。 因此 问题关键原因是 int 除以int 他认为就是int 。 


	int a = 5, b = 2;
	qDebug() << "shuxue debug double" << (a + b - 1) / b;

	qDebug() << "shuxue debug double 8888" << ceil(5.0 / 2);

 

你可能感兴趣的:(c++,c++,算法,开发语言)