C asin()

asin() 函数接受一个参数(-1 ≤ x ≤ 1),并以弧度返回其反正弦值。在数学上,asin(x) = sin-1(x)

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


asin() 原型

double asin(double x);

要查找 intfloatlong double 类型的反正弦值,您可以使用类型转换运算符显式地将其转换为 double

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

此外,C99 中引入了两个函数 asinf() 和 asinl(),分别用于处理 floatlong 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
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战