ceil() 函数的相同参数的不同 return 值

diffrent return value for same arguement of ceil() function

#include<bits/stdc++.h>
using namespace std;
int main() {

    int ans = ceil(1.5);
    printf("%d\n", ans);

    ans = ceil(3 / 2);
    printf("%d", ans);
}

输出:
2
1

为什么这段代码在我的编辑器(vs 代码)中打印出不同的答案?

当你发送3/2作为参数时,你实际上发送了1。程序将3/2计算为int因此结果为1,然后第二次ans计算实际上是通过ceil(1.0)

而不是 ceil(3 / 2),你需要做 ceil(3.0 / 2.0)。在这种情况下,程序将其计算为 double,结果将为 1.5,这意味着第二个 ans 计算由 ceil(1.5).

实际上你正在向函数发送不同的参数 ceil

3 / 2会先计算成整数1,因为32都是整数所以运算符/会return 一个整数。

所以你实际上是第二次调用 ceil(1)