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

发布时间:2024年01月16日

???????

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

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

#include <bits/stdc++.h>
using namespace std;

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

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

??

#include <bits/stdc++.h>
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);

?

文章来源:https://blog.csdn.net/vcit102/article/details/135616087
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。