fabs、fabsf、fabsl、fabsd32、fabsd64、fabsd128
来自 cppreference.com
定义在头文件 <math.h> 中 |
||
float fabsf( float arg ); |
(1) | (自 C99 起) |
double fabs( double arg ); |
(2) | |
long double fabsl( long double arg ); |
(3) | (自 C99 起) |
_Decimal32 fabsd32( _Decimal32 arg ); |
(4) | (自 C23 起) |
_Decimal64 fabsd64( _Decimal64 arg ); |
(5) | (自 C23 起) |
_Decimal128 fabsd128( _Decimal128 arg ); |
(6) | (自 C23 起) |
定义在头文件 <tgmath.h> 中 |
||
#define fabs( arith ) |
(7) | (自 C99 起) |
1-6) 计算浮点值
arg
的绝对值。
只有当实现预定义了 |
(自 C23 起) |
7) 类型泛型宏:如果参数的类型是 _Decimal128, _Decimal64, _Decimal32,(自 C23 起)long double, double, 或 float,
fabsd128
, fabsd64
, fabsd32
,(自 C23 起)fabsl
, fabs
, 或 fabsf
分别被调用。否则,如果参数是整数类型,则调用 fabs
。否则,如果参数是复数,则宏调用相应的复数函数 (cabsf, cabs, cabsl)。否则,行为未定义。内容 |
[编辑] 参数
arg | - | 浮点值 |
arith | - | 浮点值或整数值 |
[编辑] 返回值
如果成功,则返回 arg
的绝对值 (|arg|)。返回值是精确的,不依赖于任何舍入模式。
[编辑] 错误处理
此函数不受 math_errhandling 中指定的任何错误条件的影响。
如果实现支持 IEEE 浮点运算(IEC 60559),则
- 如果参数是 ±0,则返回 +0
- 如果参数是 ±∞,则返回 +∞
- 如果参数是 NaN,则返回 NaN
[编辑] 示例
运行此代码
#include <math.h> #include <stdio.h> #define PI 3.14159 // This numerical integration assumes all area is positive. double integrate(double f(double), double a, double b, // assume a < b unsigned steps) // assume steps > 0 { const double dx = (b - a) / steps; double sum = 0.0; for (double x = a; x < b; x += dx) sum += fabs(f(x)); return dx * sum; } int main(void) { printf("fabs(+3) = %f\n", fabs(+3.0)); printf("fabs(-3) = %f\n", fabs(-3.0)); // special values printf("fabs(-0) = %f\n", fabs(-0.0)); printf("fabs(-Inf) = %f\n", fabs(-INFINITY)); printf("Area under sin(x) in [-PI, PI] = %f\n", integrate(sin, -PI, PI, 5101)); }
输出
fabs(+3) = 3.000000 fabs(-3) = 3.000000 fabs(-0) = 0.000000 fabs(-Inf) = inf Area under sin(x) in [-PI, PI] = 4.000000
[编辑] 参考
- C23 标准 (ISO/IEC 9899:2024)
- 7.12.7.2 fabs 函数 (p: TBD)
- 7.25 类型泛型数学 <tgmath.h> (p: TBD)
- F.10.4.2 fabs 函数 (p: TBD)
- C17 标准 (ISO/IEC 9899:2018)
- 7.12.7.2 fabs 函数 (p: 181)
- 7.25 类型泛型数学 <tgmath.h> (p: 272-273)
- F.10.4.2 fabs 函数 (p: 382)
- C11 标准 (ISO/IEC 9899:2011)
- 7.12.7.2 fabs 函数 (p: 248)
- 7.25 类型泛型数学 <tgmath.h> (p: 373-375)
- F.10.4.2 fabs 函数 (p: 524)
- C99 标准 (ISO/IEC 9899:1999)
- 7.12.7.2 fabs 函数 (p: 228-229)
- 7.22 类型泛型数学 <tgmath.h> (p: 335-337)
- F.9.4.2 fabs 函数 (p: 460)
- C89/C90 标准 (ISO/IEC 9899:1990)
- 4.5.6.2 fabs 函数
[编辑] 另请参见
(C99) |
计算整数值的绝对值 (|x|) (函数) |
(C99)(C99)(C99) |
生成一个具有给定值大小和另一个给定值符号的值 (函数) |
(C99) |
检查给定数字是否为负数 (函数宏) |
(C99)(C99)(C99) |
计算复数的大小 (函数) |
C++ 文档 for fabs
|