C#의 MathF.Sin() 메서드는 지정된 float 형식 각도 값에 대한 사인(sine) 값을 반환하는 정적 메서드입니다. float 연산을 수행하므로 double 기반인 Math.Sin()보다 메모리 효율이 좋으며, 그래픽 처리나 게임 개발처럼 성능이 중요한 환경에서 유용하게 활용됩니다.
구문(Syntax)
MathF.Sin() 메서드의 기본 구문은 다음과 같습니다.
public static float Sin(float val);
매개변수 val에는 사인 값을 구하고자 하는 각도가 라디안(radian) 단위로 전달됩니다. 도(degree) 단위의 각도를 사용하려면 라디안으로 변환한 후 전달해야 합니다.
반환값
- 일반적인 숫자: 해당 각도의 사인 값(-1 ~ 1 범위)
- NaN(Not a Number): 인자가
float.NaN인 경우 - NaN: 인자가 양의 무한대(
PositiveInfinity) 또는 음의 무한대(NegativeInfinity)인 경우
예제 1: 일반 값과 NaN 처리
다음은 MathF.Sin() 메서드를 사용하여 일반 float 값과 NaN 값의 사인을 계산하는 예제입니다.
using System;
public class Demo {
public static void Main(){
float val1 = 10f;
float val2 = float.NaN;
Console.WriteLine("MathF.Sin(val1) = " + MathF.Sin(val1));
Console.WriteLine("MathF.Sin(val2) = " + MathF.Sin(val2));
}
}실행 결과
MathF.Sin(val1) = -0.5440211 MathF.Sin(val2) = NaN
10라디안의 사인 값은 약 -0.5440211로 계산되며, 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.Sin(val1) = " + MathF.Sin(val1));
Console.WriteLine("MathF.Sin(val2) = " + MathF.Sin(val2));
Console.WriteLine("MathF.Sin(val3) = " + MathF.Sin(val3));
}
}실행 결과
MathF.Sin(val1) = NaN MathF.Sin(val2) = NaN MathF.Sin(val3) = 0.3420202
양의 무한대와 음의 무한대는 사인 함수의 정의역에 포함되지 않으므로 모두 NaN이 반환됩니다. 반면, 20도를 라디안으로 변환한 값(약 0.3490658)의 사인은 약 0.3420202로 정상적으로 계산됩니다.
정리
- MathF.Sin()은 float 형식 각도(라디안)의 사인 값을 float로 반환합니다.
- NaN 또는 무한대를 입력하면 항상 NaN이 반환됩니다.
- 도 단위 각도는
(degree × MathF.PI) / 180공식으로 라디안을 변환한 뒤 사용해야 합니다.