acosh()函數(shù)返回弧度數(shù)的反雙曲余弦值。
acosh()函數(shù)采用單個(gè)參數(shù)(x≥1),并以弧度返回弧反雙曲余弦。
acosh()函數(shù)包含在<math.h>頭文件中。
double acosh(double x);
要查找類型為int,float或long double的反雙曲余弦,可以使用強(qiáng)制轉(zhuǎn)換運(yùn)算符將類型顯式轉(zhuǎn)換為double。
int x = 0; double result; result = acosh(double(x));
另外,C99中引入了兩個(gè)函數(shù)acoshf()和acoshl(),分別專門處理float類型和long double類型。
float acoshf(float x); long double acoshl(long double x);
acosh()函數(shù)采用一個(gè)大于或等于1的參數(shù)。
| 參數(shù) | 描述 |
|---|---|
| double value(雙精度值) | 必需的。大于或等于1的兩倍值 (x ≥ 1). |
acosh()函數(shù)返回一個(gè)數(shù)大于或弧度等于0。如果傳遞的參數(shù)小于1(x <1),則該函數(shù)返回NaN(不是數(shù)字)。
| 參數(shù)(x) | 返回值 |
|---|---|
| x ≥ 1 | 大于或等于0(以弧度為單位)的數(shù)字 |
| x < 1 | NaN (不是數(shù)字) |
#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);
//將弧度轉(zhuǎn)換成角度
result = acosh(x)*180/PI;
printf("acosh(%.2f) 反雙曲余弦值 = %.2lf 度\n", x, result);
//參數(shù)不在范圍內(nèi)
x = 0.5;
result = acosh(x);
printf("acosh(%.2f) 反雙曲余弦值 = %.2lf", x, result);
return 0;
}輸出結(jié)果
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;
//最大可表示的有限浮點(diǎn)數(shù)
x = DBL_MAX;
result = acosh(x);
printf("弧度acosh()的最大值 = %.3lf\n", result);
// Infinity
x = INFINITY;
result = acosh(x);
printf("當(dāng)無窮大傳遞給acosh()時(shí),結(jié)果 = %.3lf\n", result);
return 0;
}可能的輸出
弧度acosh()的最大值 = 710.476 當(dāng)無窮大傳遞給acosh()時(shí),結(jié)果 = inf
在這里,在float.h頭文件中定義的DBL_MAX是可表示的最大有限浮點(diǎn)數(shù)。 并且,math.h中定義的INFINITY是表示正無窮大的常數(shù)表達(dá)式。
#include <stdio.h>
#include <math.h>
int main()
{
float fx, facosx;
long double lx, ldacosx;
//浮點(diǎn)型圓弧雙曲余弦
fx = 5.5054;
facosx = acoshf(fx);
//長(zhǎng)雙精度類型的弧雙曲余弦
lx = 5.50540593;
ldacosx = acoshl(lx);
printf("acoshf(x) 反雙曲余弦= %f 弧度\n", facosx);
printf("acoshl(x) 反雙曲余弦= %Lf 度", ldacosx);
return 0;
}輸出結(jié)果
acoshf(x) 反雙曲余弦 = 2.390524 弧度 acoshl(x) 反雙曲余弦 = 2.390525 度