std::fabs和std::abs的区别
时间: 2023-11-05 07:21:07 浏览: 82
`std::fabs`是C++中的一个函数,它是用来计算浮点型数的绝对值的,其定义在`<cmath>`头文件中。
`std::abs`也是C++中的一个函数,用来计算整型数的绝对值,其定义在`<cstdlib>`头文件中。
两者的区别在于,`std::fabs`只适用于浮点型数,而`std::abs`只适用于整型数。此外,`std::fabs`返回值的类型是浮点型,而`std::abs`返回值的类型是整型。
相关问题
std::abs()和std::fabs()
std::abs()和std::fabs()都是用来计算一个数的绝对值的函数,但是它们有一些不同之处。
std::abs()是C++标准库中的函数,可以计算整型、浮点型和长整型的绝对值。该函数在头文件<cmath>中声明。
例如,std::abs(-5)的结果为5,std::abs(-3.14)的结果为3.14。
std::fabs()也是C++标准库中的函数,但它只能计算浮点型的绝对值。该函数在头文件<cmath>中声明。
例如,std::fabs(-3.14)的结果为3.14。
总的来说,如果需要计算整型、浮点型和长整型的绝对值,应该使用std::abs();如果只需要计算浮点型的绝对值,应该使用std::fabs()。
D:\ZBY\CodeBase\eigen-3.4.0\Eigen\src\SVD\BDCSVD.h:416: error: conflicting declaration of C function 'long long int std::abs(long long int)' using std::abs; ^
这个错误是因为在你的代码中使用了 `std::abs` 函数,而该函数已经被 `BDCSVD.h` 文件中的另一个声明所覆盖。解决方法有两种:
1. 使用 `std::fabs` 代替 `std::abs`。
2. 在 `#include` `BDCSVD.h` 之前加上 `#undef abs`,这样可以取消 `BDCSVD.h` 中对 `abs` 的定义。
阅读全文