C#의 MathF.Log10() 메서드는 지정된 숫자에 대한 밑이 10인 로그(상용로그) 값을 float 형식으로 반환하는 메서드입니다. 이 메서드는 System 네임스페이스에 포함되어 있으며, 단정밀도 부동 소수점(float) 연산에 최적화되어 있어 성능이 중요한 수치 계산에 유용합니다.
문법(Syntax)
MathF.Log10() 메서드의 기본 문법은 다음과 같습니다.
public static float Log10 (float val);
여기서 val은 로그를 계산할 숫자를 의미합니다.
반환값 및 예외 동작
- val이 양수이면 해당 값의 상용로그(밑 10)를 반환합니다.
- val이 0이면 음의 무한대(NegativeInfinity)를 반환합니다.
- val이 음수이면 NaN(Not a Number)을 반환합니다.
- val이 NaN이면 NaN을 반환합니다.
예제 1: 양수와 음수 입력
다음은 MathF.Log10() 메서드를 사용하는 첫 번째 예제입니다. 양수와 음수를 각각 입력했을 때의 결과를 확인해 보겠습니다.
using System;
public class Demo {
public static void Main(){
float val1 = 45.9f;
float val2 = -4.35f;
Console.WriteLine(MathF.Log10(val1));
Console.WriteLine(MathF.Log10(val2));
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
1.661813 NaN
45.9f의 상용로그는 약 1.661813이며, 음수인 -4.35f는 로그를 정의할 수 없으므로 NaN이 반환된 것을 확인할 수 있습니다.
예제 2: 1과 10 입력
이번에는 로그 계산에서 특별한 의미를 가지는 값들을 입력해 보겠습니다.
using System;
public class Demo {
public static void Main(){
float val1 = 1.0f;
float val2 = 10.0f;
Console.WriteLine(MathF.Log10(val1));
Console.WriteLine(MathF.Log10(val2));
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
0 1
밑이 10인 로그에서 log₁₀(1) = 0, log₁₀(10) = 1이라는 수학적 정의와 일치하는 결과가 출력됩니다.
MathF.Log10()과 Math.Log10()의 차이
C#에는 double 형식을 다루는 Math.Log10()도 존재합니다. 두 메서드의 주요 차이는 다음과 같습니다.
- MathF.Log10(): float(단정밀도, 32비트) 매개변수를 받아 float를 반환합니다.
- Math.Log10(): double(배정밀도, 64비트) 매개변수를 받아 double을 반환합니다.
float 연산만 필요한 게임 개발이나 그래픽 처리 등에서는 불필요한 형 변환을 줄일 수 있는 MathF.Log10()이 더 효율적입니다.
마무리
MathF.Log10() 메서드는 상용로그 계산을 간단하게 처리할 수 있으며, 음수나 0 입력 시 NaN 또는 음의 무한대를 반환한다는 점을 항상 염두에 두어야 합니다. 실제 프로젝트에서는 입력값의 유효성 검사를 함께 수행하는 것이 안전한 코딩 습관입니다.