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

时间:2019-02-17 22:33:15

标签: c formatting rounding

这是我的代码:

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

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

我遇到的第一个问题是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。

1 个答案:

答案 0 :(得分:0)

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