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

标签 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。

最佳答案

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

关于c - 如何在 C 中使用 round() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54738295/

相关文章:

c - 编译器会把跳转表放在函数的末尾吗?

matlab - 对齐文本和编辑 uicontrols

r - R : Strange Empty 1st Column 中的条形图

我可以依赖 C 中的 %(模)运算符来获取负数吗?

Lua:四舍五入然后截断

Python - 使用 ctypes 在 C 和 Python 之间传递指针

c - 如何将 token (strtok)存储在数组的指针中

c - Linux GKI 代表什么?

haskell - 在 Haskell 中将字符串格式化为三角形

ruby-on-rails - Ruby 舍入约定