C fabs 返回整数

标签 c math.h

我在 C 代码中遇到了 fabs 函数的奇怪问题。我有两个 double 值,我想使用如下代码找到它们差异的绝对值:

a = 87.967498;
b = 218.025015;
if (fabs(a-b)<2.0)
...code to execute

fabs(a-b)的值是一个int,等于1。我不知道这里出了什么问题,而且我在网上找不到任何东西。任何帮助都会很棒!!

最佳答案

您没有包含 <math.h> 。将以下行添加到您的其他包含中:

#include <math.h>

为了更容易地发现此类错误,我建议您使用详细的编译器警告(gcc -Wall -Wextra ... 如果您使用 gcc)。

关于C fabs 返回整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14316183/

相关文章:

c - 如果在堆栈上分配结构,则会发出警告

c - Vigenere 密码陷入无限循环

c++ - Visual Studio 2017 Android NDK 数学.h

c++ - 字符串常量之前的预期 unqualified-id

java - 用于 Java/Android 的 echoprint 代码生成器

c - 无法在文本文件中正确写入数据

c++ - GDB - 访问复数的实部和虚部

c - 在这种情况下,如何将 double 归因于 int 呢?

c++ - 如何打印出给定范围内的直角三角形的周长和个数?

c - 错误函数 erf(x),在 visual studio 2005 的 math.h 中找不到