如何在C [duplicate]中使用round()函数

问题描述 投票:1回答:1

所以这是我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

int main()
{
        float f = .55;
        int i;
        i = round(f);
}

我遇到的第一个问题是round()函数本身。当这样调用它时:round(foo)没有编译错误。粗略的,这是无用的,因为返回了round()的所需输出。但是当我尝试捕获round()的输出时:

i = round(f)

我得到一个编译时错误:

test.c:(.text+0x1b): undefined reference to `round'

就好像只是尝试分配round()的返回值一样,强制round()不被定义。我在这里读过一些帖子说我应该把-lm传递给GCC,但这没什么区别。

试图从printf调用round()给出了同样的错误,例如:

printf("....", round(f))

这实际上让我很生气,因为所有在线参考文献都说:

int i = round(f)

应该管用。

这是Ubuntu 18.04上最新的GCC。

c formatting rounding
1个回答
0
投票

好吧......所以 - 这当然是我自己的无知。我显然没有将“-lm”添加到参数列表的END中。现在一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.