C#의 Math.Asin() 메서드는 지정된 숫자를 사인(sine) 값으로 가지는 각도, 즉 역사인(아크사인) 값을 반환하는 메서드입니다. 인수로 전달되는 값은 double 형식이어야 하며, 반환 결과는 라디안(radian) 단위의 각도입니다.
문법(Syntax)
Math.Asin() 메서드의 기본 문법은 다음과 같습니다.
public static double Asin (double val);
여기서 val은 사인 값을 나타내는 숫자입니다. 이 값은 반드시 -1 이상 1 이하 범위 내에 있어야 합니다. 만약 범위를 벗어난 값이나 무한대(∞), NaN 같은 특수한 값이 전달되면 NaN(Not a Number)을 반환합니다.
예제 1
다음은 Math.Asin() 메서드를 사용하는 첫 번째 예제입니다.
using System;
public class Demo {
public static void Main(){
double val1 = -0.0;
double val2 = Double.PositiveInfinity;
double val3 = Double.NaN;
Console.WriteLine("Return value of {0} : {1}", val1, Math.Asin(val1));
Console.WriteLine("Return value of {0} : {1}", val2, Math.Asin(val2));
Console.WriteLine("Return value of {0} : {1}", val3, Math.Asin(val3));
}
}실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
Return value of 0 : 0 Return value of ∞ : NaN Return value of NaN : NaN
출력 결과에서 알 수 있듯이, 양의 무한대(PositiveInfinity)나 NaN을 입력으로 전달하면 유효한 각도를 계산할 수 없기 때문에 모두 NaN이 반환됩니다.
예제 2
이번에는 음의 무한대와 허용 범위를 초과하는 값을 입력했을 때의 동작을 확인해 보겠습니다.
using System;
public class Demo {
public static void Main(){
double val1 = Double.NegativeInfinity;
double val2 = 2;
Console.WriteLine("Return value of {0} : {1}", val1, Math.Asin(val1));
Console.WriteLine("Return value of {0} : {1}", val2, Math.Asin(val2));
}
}실행 결과
위 코드의 실행 결과는 다음과 같습니다.
Return value of -∞ : NaN Return value of 2 : NaN
사인 함수의 값은 수학적으로 항상 -1부터 1 사이에 존재하기 때문에, 음의 무한대(-∞)나 2처럼 범위를 벗어난 값이 입력되면 결과로 NaN이 반환됩니다. 따라서 Math.Asin() 메서드를 사용할 때는 입력값의 유효 범위(-1 ~ 1)를 반드시 확인하는 것이 좋습니다.