C#의 Math.Log() 메서드는 지정된 숫자의 로그(로그arithm) 값을 계산하여 반환하는 메서드입니다. 자연로그뿐만 아니라 원하는 밑(base)을 지정한 로그 계산도 가능합니다.
문법(Syntax)
public static double Log(double num) public static double Log(double num, double base)
위 문법에서 num은 로그를 계산할 대상 숫자이며, 두 번째 오버로드에서 base는 로그의 밑을 의미합니다. 첫 번째 형태는 밑이 e(자연상수)인 자연로그를 반환하고, 두 번째 형태는 지정한 밑에 대한 로그 값을 반환합니다.
그럼 Math.Log() 메서드를 실제로 구현한 예제를 살펴보겠습니다.
예제 1: 양수와 음수 입력
using System;
public class Demo {
public static void Main(){
double val1 = 2.15;
double val2 = -2.15;
Console.WriteLine(Math.Log(val1));
Console.WriteLine(Math.Log(val2));
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
0.765467842139571 NaN
양수 2.15의 경우 정상적으로 자연로그 값이 계산되지만, 음수인 -2.15는 로그를 정의할 수 없기 때문에 NaN(Not a Number)이 반환됩니다. 이처럼 Math.Log() 메서드는 음수나 0을 입력하면 NaN을 반환한다는 점을 기억해야 합니다.
예제 2: 무한대 값 입력
이번에는 무한대 값을 입력했을 때의 동작을 확인해 보겠습니다.
using System;
public class Demo {
public static void Main(){
double val1 = Double.PositiveInfinity;
double val2 = Double.NegativeInfinity;
Console.WriteLine(Math.Log(val1));
Console.WriteLine(Math.Log(val2));
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
∞ NaN
양의 무한대(∞)를 입력하면 결과 역시 양의 무한대가 반환되고, 음의 무한대를 입력하면 유효하지 않은 값이라는 의미로 NaN이 반환됩니다.
정리
Math.Log() 메서드는 과학 계산, 데이터 분석, 알고리즘 구현 등 다양한 분야에서 활용되는 기본적인 수학 함수입니다. 사용 시에는 다음 사항을 유의하세요.
- 음수 또는 0을 입력하면 NaN이 반환됩니다.
- 양의 무한대를 입력하면 양의 무한대가 반환됩니다.
- 밑을 직접 지정하려면 두 번째 오버로드
Log(double num, double base)를 사용합니다.