asin()
函数接受一个参数(-1 ≤ x ≤ 1),并以弧度返回其反正弦值。在数学上,asin(x) = sin-1(x)
。
asin()
函数包含在 <math.h>
头文件中。
asin() 原型
double asin(double x);
要查找 int
、float
或 long double
类型的反正弦值,您可以使用类型转换运算符显式地将其转换为 double
。
int x = 0; double result; result = asin(double(x));
此外,C99 中引入了两个函数 asinf() 和 asinl(),分别用于处理 float
和 long double
类型。
float asinf(float x); long double asinl(long double x);
asin() 参数
asin()
函数接受一个参数,其范围是 [-1, +1]。这是因为正弦函数的值的范围是 1 和 -1。
参数 | 描述 |
---|---|
double 值 | 必需。一个介于 -1 和 +1(含)之间的 double 值。 |
asin() 返回值
asin()
函数返回的值的范围是 [-π/2, +π/2](弧度)。如果传递给 asin()
函数的参数小于 -1 或大于 1,则该函数返回 NaN(非数字)。
参数 (x) | 返回值 |
---|---|
x = [-1, +1] | [-π/2, +π/2] 弧度 |
-1 > x 或 x > 1 | NaN (非数字) |
示例 1:具有不同参数的 asin() 函数
#include <stdio.h>
#include <math.h>
int main()
{
// constant PI is defined
const double PI = 3.1415926;
double x, result;
x = -0.5;
result = asin(x);
printf("Inverse of sin(%.2f) = %.2lf in radians\n", x, result);
// converting radians to degree
result = asin(x)*180/PI;
printf("Inverse of sin(%.2f) = %.2lf in degrees\n", x, result);
// paramter not in range
x = 1.2;
result = asin(x);
printf("Inverse of sin(%.2f) = %.2lf", x, result);
return 0;
}
输出
Inverse of sin(-0.50) = -0.52 in radians Inverse of sin(-0.50) = -30.00 in degrees Inverse of sin(1.20) = nan
示例 2:asinf() 和 asinl() 函数
#include <stdio.h>
#include <math.h>
int main()
{
float fx, fasinx;
long double lx, ldasinx;
// arc sinine of type float
fx = -0.505405;
fasinx = asinf(fx);
// arc sinine of type long double
lx = -0.50540593;
ldasinx = asinf(lx);
printf("asinf(x) = %f in radians\n", fasinx);
printf("asinl(x) = %Lf in radians", ldasinx);
return 0;
}
输出
asinf(x) = -0.529851 in radians asinl(x) = -0.529852 in radians