欢迎光临
我们一直在努力

abs 和 fabs:绝对值函数的两兄弟,别用错了!

一句话总结:abs 管整数,fabs 管浮点数,各司其职。


一、它们都是干啥的?

都是求绝对值,也就是把负数变正数:

  • abs(-5) → 5
  • fabs(-3.14) → 3.14

看起来一样?错! 用错了编译器会警告,结果还可能出错。


二、核心区别(记牢这张表)

函数头文件参数类型返回类型适用场景
abs <stdlib.h> int int 整数取绝对值
fabs <math.h> double double 浮点数取绝对值

三、代码演示(C 语言)

#include <stdio.h>
#include <stdlib.h> // abs
#include <math.h> // fabs

int main() {
int a = 10;
double b = 3.14;

printf("abs(-10) = %d\\n", abs(a)); // 输出 10
printf("fabs(-3.14) = %f\\n", fabs(b)); // 输出 3.140000

// 错误用法(虽然能编译,但会丢失精度或警告)
double wrong = abs(3.14); // 隐式转 int,得到 3.0,丢掉小数
printf("%f\\n", wrong); // 输出 3.000000

return 0;
}


四、C++ 用户注意

在 C++ 中,<cmath> 提供了重载的 std::abs,可以自动适配整数和浮点数,所以你可以直接:

#include <cmath>
double x = std::abs(3.14); // 正确,返回 double
int y = std::abs(5); // 正确,返回 int

但如果你用的是 C 风格(abs 不带 std::),依然遵循整数规则。


五、避坑指南

  • 对整数用 abs,对小数用 fabs(C 语言)。
  • 别用 abs 算浮点绝对值,会截断小数。
  • 包含正确头文件:<stdlib.h> 和 <math.h> 别漏。

六、最后一句

记住:abs 是整数的“直男”,fabs 是浮点的“精致 boy” —— 各用各的

如果你觉得有帮助,欢迎点赞、收藏、评论,让更多人看到!

赞(0)
未经允许不得转载:171主机测评 » abs 和 fabs:绝对值函数的两兄弟,别用错了!
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址