fabs, fabsf, fabsl

来自cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本运算
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
指数函数
(C99)
(C99)
(C99)
(C99)
幂函数
(C99)
(C99)
三角及双曲函数
(C99)
(C99)
(C99)
误差及伽马函数
(C99)
(C99)
(C99)
(C99)
临近整数的浮点运算
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
浮点数操作函数
(C99)(C99)
(C99)
(C99)
分类
(C99)
(C99)
(C99)
类型
(C99)(C99)
宏常量
 
定义于头文件 <math.h>
float       fabsf( float arg );
(1) (C99 起)
double      fabs( double arg );
(2)
long double fabsl( long double arg );
(3) (C99 起)
定义于头文件 <tgmath.h>
#define fabs( arg )
(4) (C99 起)
1-3) 计算浮点值 arg 的绝对值。
4) 泛型宏:若参数类型为 long double ,则调用 fabsl 。否则,若参数类型为整数或 double ,则调用 fabs 。否则调用 fabsf 。若参数为复数或虚数,则调用对应的复数函数( cabsfcabscabsl )。

参数

arg - 浮点值

返回值

若成功,则返回 arg 的绝对值( |arg| )。值是准确的,且不依赖任何舍入模式。

错误处理

此函数不受制于任何指定于 math_errhandling 的错误条件。

若实现支持 IEEE 浮点算术( IEC 60559 ),则

  • 若参数为 ±0 ,则返回 +0
  • 若参数为 ±∞ ,则返回 +∞
  • 若参数为 NaN ,则返回 NaN

示例

#include <stdio.h>
#include <math.h>
 
/* 此数值积分假定所有面积均为正。 */
#define PI 3.14159
double num_int (double a, double b,
                double f(double),
                unsigned n) {
    if (a == b) return 0.0;
    if (n == 0) n=1;   /* 避免除以零 */
    double h = (b-a)/n;
    double sum = 0.0;
    for (unsigned k=0; k < n; ++k)
        sum += h*fabs(f(a+k*h));
    return sum;
}
 
int main(void)
{
    printf("fabs(+3) = %f\n", fabs(+3.0));
    printf("fabs(-3) = %f\n", fabs(-3.0));
    // 特殊值
    printf("fabs(-0) = %f\n", fabs(-0.0));
    printf("fabs(-Inf) = %f\n", fabs(-INFINITY));
 
    printf("%f\n", num_int(0.0,2*PI,sin,100000));
 
}

输出:

fabs(+3) = 3.000000
fabs(-3) = 3.000000
fabs(-0) = 0.000000
fabs(-Inf) = inf
4.000000

引用

  • C11 standard (ISO/IEC 9899:2011):
  • 7.12.7.2 The fabs functions (p: 248)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.12.7.2 The fabs functions (p: 228-229)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.5.6.2 The fabs function

参阅

计算整数值的绝对值 (|x|
(函数)
从一个给定值的绝对值和另一个给定值的符号产生值
(函数)
检查给定数是不是负数
(函数)
(C99)(C99)(C99)
计算复数的模(绝对值)
(函数)