返回时double变为舍入

Tom*_*Tom -1 c double return return-value

如何在没有舍入的情况下返回双精度数:

int function() {
    double d = 5.894; 
    printf("d=%f\n", d);
    return d;
}

int main() {
    double d = function();
    printf("d=%f\n", d);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这给了我

d=5.894000
d=5.000000
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

Iha*_*imi 6

你的函数返回int必须返回double

更改

int function()
Run Code Online (Sandbox Code Playgroud)

double function()
Run Code Online (Sandbox Code Playgroud)