C 语言基础教程

C 语言流程控制

C 语言函数

C 语言数组

C 语言指针

C 语言字符串

C 语言结构体

C 语言文件

C 其他

C 语言参考手册

C 库函数 acosh() 使用方法及示例

C 标准库 <math.h>

acosh()函数返回弧度数的反双曲余弦值。

acosh()函数采用单个参数(x≥1),并以弧度返回弧反双曲余弦。

acosh()函数包含在<math.h>头文件中。

acosh()原型

double acosh(double x);

要查找类型为int,float或long double的反双曲余弦,可以使用强制转换运算符将类型显式转换为double。

 int x = 0;
 double result;
 result = acosh(double(x));

另外,C99中引入了两个函数acoshf()和acoshl(),分别专门处理float类型和long double类型。

float acoshf(float x);
long double acoshl(long double x);

acosh()参数和返回值

acosh()函数采用一个大于或等于1的参数。

参数描述
double value(双精度值)必需的。大于或等于1的两倍值  (x ≥ 1).

acosh()返回值

acosh()函数返回一个数大于或弧度等于0。如果传递的参数小于1(x <1),则该函数返回NaN(不是数字)。

参数(x)返回值
x ≥ 1

大于或等于0(以弧度为单位)的数字

x < 1NaN (不是数字)

示例1:具有不同参数的acosh()函数

#include <stdio.h>
#include <math.h>

int main()
{
    // 定义常量 PI
    const double PI =  3.1415926;
    double x, result;

    x =  5.9;
    result = acosh(x);
    printf("acosh(%.2f) 反双曲余弦值 = %.2lf 弧度\n", x, result);

    //将弧度转换成角度
    result = acosh(x)*180/PI;
    printf("acosh(%.2f) 反双曲余弦值  = %.2lf 度\n", x, result);

    //参数不在范围内
    x = 0.5;
    result = acosh(x);
    printf("acosh(%.2f) 反双曲余弦值  = %.2lf", x, result);

    return 0;
}

输出结果

acosh(5.90) 反双曲余弦值  = 2.46 弧度
acosh(5.90) 反双曲余弦值  = 141.00 度
acosh(0.50) 反双曲余弦值  = nan

示例2:acosh()用INFINITY和DBL_MAX做参数

#include <stdio.h>
#include <math.h>
#include <float.h>

int main()
{
    double x, result;

    //最大可表示的有限浮点数
    x =  DBL_MAX;
    result = acosh(x);
    printf("弧度acosh()的最大值 = %.3lf\n", result);

    // Infinity
    x = INFINITY;
    result = acosh(x);
    printf("当无穷大传递给acosh()时,结果 = %.3lf\n", result);

    return 0;
}

可能的输出

弧度acosh()的最大值 = 710.476
当无穷大传递给acosh()时,结果 = inf

在这里,在float.h头文件中定义的DBL_MAX是可表示的最大有限浮点数。 并且,math.h中定义的INFINITY是表示正无穷大的常数表达式。

示例3:acoshf()和acoshl()函数

#include <stdio.h>
#include <math.h>
int main()
{
    float fx, facosx;
    long double lx, ldacosx;

    //浮点型圆弧双曲余弦
    fx = 5.5054;
    facosx = acoshf(fx);

    //长双精度类型的弧双曲余弦
    lx = 5.50540593;
    ldacosx = acoshl(lx);

    printf("acoshf(x) 反双曲余弦= %f 弧度\n", facosx);
    printf("acoshl(x) 反双曲余弦= %Lf 度", ldacosx);

    return 0;
}

输出结果

acoshf(x) 反双曲余弦 = 2.390524 弧度
acoshl(x) 反双曲余弦 = 2.390525 度

C 标准库 <math.h>