acosh()函数返回弧度数的反双曲余弦值。
acosh()函数采用单个参数(x≥1),并以弧度返回弧反双曲余弦。
acosh()函数包含在<math.h>头文件中。
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()函数采用一个大于或等于1的参数。
| 参数 | 描述 |
|---|---|
| double value(双精度值) | 必需的。大于或等于1的两倍值 (x ≥ 1). |
acosh()函数返回一个数大于或弧度等于0。如果传递的参数小于1(x <1),则该函数返回NaN(不是数字)。
| 参数(x) | 返回值 |
|---|---|
| x ≥ 1 | 大于或等于0(以弧度为单位)的数字 |
| x < 1 | NaN (不是数字) |
#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
#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是表示正无穷大的常数表达式。
#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 度