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

C# MathF.Tan() 메서드 완벽 정리: 예제 코드와 함께 배우기

C#의 MathF.Tan() 메서드는 지정된 float 형식 값(각도)에 대한 탄젠트(tangent) 값을 반환하는 수학 함수입니다. 이 메서드는 System 네임스페이스에 포함되어 있으며, 단정밀도 부동 소수점(float) 연산에 최적화되어 있어 성능이 중요한 수치 계산에 유용합니다.

문법(Syntax)

MathF.Tan() 메서드의 기본 문법은 다음과 같습니다.

public static float Tan (float val);

여기서 매개변수 val은 탄젠트 값을 구하고자 하는 각도를 라디안(radian) 단위로 나타냅니다. 반환값은 해당 각도의 탄젠트 값이며, 결과는 float 형식입니다.

주요 특징

  • 입력값이 NaN(Not a Number)인 경우 → NaN을 반환합니다.
  • 입력값이 양의 무한대 또는 음의 무한대인 경우 → NaN을 반환합니다.
  • 일반적인 유한한 숫자가 입력되면 해당 각도의 탄젠트 값을 반환합니다.

예제 1: 일반 값과 NaN 처리

다음은 MathF.Tan() 메서드를 사용하여 일반 숫자와 NaN 값의 탄젠트를 구하는 예제입니다.

using System;
public class Demo {
    public static void Main(){
        float val1 = 10f;
        float val2 = float.NaN;
        Console.WriteLine("MathF.Tan(val1) = "+MathF.Tan(val1));
        Console.WriteLine("MathF.Tan(val2) = "+MathF.Tan(val2));
    }
}

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

MathF.Tan(val1) = 0.6483608
MathF.Tan(val2) = NaN

첫 번째 결과에서 10 라디안에 대한 탄젠트 값인 0.6483608이 반환된 것을 확인할 수 있으며, NaN을 입력으로 전달하면 역시 NaN이 반환됩니다.

예제 2: 무한대 및 각도 변환 활용

이번에는 양의 무한대, 음의 무한대, 그리고 도(degree)를 라디안으로 변환하여 탄젠트를 계산하는 예제를 살펴보겠습니다.

using System;
public class Demo {
    public static void Main(){
        float val1 = float.PositiveInfinity;
        float val2 = float.NegativeInfinity;
        float val3 = (20f * (MathF.PI)) / 180;
        Console.WriteLine("MathF.Tan(val1) = "+MathF.Tan(val1));
        Console.WriteLine("MathF.Tan(val2) = "+MathF.Tan(val2));
        Console.WriteLine("MathF.Tan(val3) = "+MathF.Tan(val3));
    }
}

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과가 생성됩니다.

MathF.Tan(val1) = NaN
MathF.Tan(val2) = NaN
MathF.Tan(val3) = 0.3639702

무한대 값을 입력하면 탄젠트가 정의되지 않으므로 NaN이 반환됩니다. 반면, 세 번째 경우는 20도를 라디안으로 변환한 값((20 × π) / 180 ≒ 0.349)을 입력했으며, 그 결과 약 0.3639702라는 탄젠트 값이 정상적으로 계산되었습니다.

정리

MathF.Tan() 메서드는 라디안 단위의 각도에 대한 탄젠트 값을 빠르게 계산해 주는 유용한 함수입니다. 사용 시 다음 사항을 기억하세요.

  • 입력 각도는 반드시 라디안 단위여야 하며, 도(degree) 단위의 값은 π/180을 곱해 변환 후 사용해야 합니다.
  • NaN 또는 무한대 값이 입력되면 항상 NaN이 반환됩니다.
  • double 정밀도가 필요하다면 대신 Math.Tan() 메서드를 사용하는 것이 좋습니다.