Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 float 값의 사인에 해당하는 각도 구하기 – MathF.Asin() 메서드 활용법

C#에서 float 값을 인수로 받아, 그 값이 사인(sine)이 되는 각도(아크사인)를 구하려면 MathF.Asin() 메서드를 사용하면 됩니다.

MathF.Asin() 메서드는 지정된 float 값에 대한 역사인(아크사인) 값을 라디안(radian) 단위로 반환합니다. 이때 입력값은 반드시 -1부터 1 사이의 범위에 있어야 하며, 이 범위를 벗어난 값이 전달되면 유효한 각도가 존재하지 않는다는 의미로 NaN(Not a Number)이 반환됩니다.

예제 1

using System;
public class Demo {
   public static void Main() {
      float val1 = 0.1f;
      float val2 = 8.9f;
      Console.WriteLine("Angle (val1) = "+(MathF.Asin(val1)));
      Console.WriteLine("Angle (val2) = "+(MathF.Asin(val2)));
   }
}

출력 결과

Angle (val1) = 0.1001674
Angle (val2) = NaN

위 예제에서 val1(0.1f)은 유효 범위인 -1~1 안에 있으므로 정상적인 각도 값이 반환됩니다. 반면 val2(8.9f)는 1보다 크기 때문에 사인 함수의 출력 범위를 벗어나며, 따라서 NaN이 반환됩니다.

예제 2

다른 예제도 살펴보겠습니다.

using System;
public class Demo {
   public static void Main() {
      float val1 = 1.2f;
      float val2 = 45.5f;
      Console.WriteLine("Angle (val1) = "+(MathF.Asin(val1)));
      Console.WriteLine("Angle (val2) = "+(MathF.Asin(val2)));
   }
}

출력 결과

Angle (val1) = NaN
Angle (val2) = NaN

두 값 모두 1보다 크기 때문에 유효한 각도가 존재하지 않으며, 두 경우 모두 NaN이 반환됩니다.

핵심 정리

  • MathF.Asin(float x): 사인 값이 x가 되는 각도를 라디안 단위로 반환합니다.
  • 유효 입력 범위는 -1 ≤ x ≤ 1입니다.
  • 범위를 벗어난 값이 입력되면 NaN이 반환됩니다.
  • 결과를 도(degree) 단위로 얻고 싶다면 반환값에 180 / MathF.PI를 곱해 변환할 수 있습니다.