Math.Min() 메서드란?
C#의 Math.Min() 메서드는 지정된 두 숫자를 비교하여 그중 더 작은 값(최솟값)을 반환하는 정적(static) 메서드입니다. 이 메서드는 System 네임스페이스의 Math 클래스에 포함되어 있으며, byte, decimal, double, short(Int16), int(Int32), long(Int64), float 등 다양한 숫자 형식에 대해 오버로드되어 제공되기 때문에 어떤 숫자 형식이든 동일한 방식으로 사용할 수 있습니다.
참고로, 두 숫자 중 더 큰 값을 구하고 싶다면 Math.Max() 메서드를 사용하면 됩니다.
구문(Syntax)
Math.Min() 메서드의 기본 구문은 다음과 같습니다 −
public static ulong Min (ulong val1, ulong val2); public static uint Min (uint val1, uint val2); public static ushort Min (ushort val1, ushort val2); public static float Min (float val1, float val2); public static byte Min (byte val1, byte val2); public static long Min (long val1, long val2);
매개변수
- val1 − 비교 대상인 첫 번째 숫자
- val2 − 비교 대상인 두 번째 숫자
반환값
두 인수 중 더 작은 값을 반환합니다.
예제 1: byte, decimal, double, short 형식 비교
다음은 Math.Min() 메서드를 다양한 숫자 형식에 적용해 본 첫 번째 예제입니다 −
using System;
public class Demo {
public static void Main(){
byte val1 = 10, val2 = 15;
decimal val3 = 1000M, val4 = 1500M;
double val5 = 15.896745, val6 = 25.676843;
short val7 = 20, val8 = 30;
Console.WriteLine("두 byte 값 중 최솟값 = " + Math.Min(val1, val2));
Console.WriteLine("두 decimal 값 중 최솟값 = " + Math.Min(val3, val4));
Console.WriteLine("두 double 값 중 최솟값 = " + Math.Min(val5, val6));
Console.WriteLine("두 short 값 중 최솟값 = " + Math.Min(val7, val8));
}
}실행 결과
위 코드를 실행하면 다음과 같은 출력이 나타납니다 −
두 byte 값 중 최솟값 = 10 두 decimal 값 중 최솟값 = 1000 두 double 값 중 최솟값 = 15.896745 두 short 값 중 최솟값 = 20
예제 2: int, float 형식 비교
이번에는 int와 float 형식의 숫자를 비교하는 예제입니다 −
using System;
public class Demo {
public static void Main(){
int val1 = 10, val2 = 15;
float val3 = 12.8f, val4 = 25.6f;
Console.WriteLine("두 int 값 중 최솟값 = " + Math.Min(val1, val2));
Console.WriteLine("두 float 값 중 최솟값 = " + Math.Min(val3, val4));
}
}실행 결과
위 코드를 실행하면 다음과 같은 출력이 나타납니다 −
두 int 값 중 최솟값 = 10 두 float 값 중 최솟값 = 12.8
정리 및 활용 팁
Math.Min() 메서드는 단순히 두 값만 비교할 수 있지만, 세 개 이상의 값을 비교할 때는 메서드를 중첩하여 사용할 수 있습니다. 예를 들어 Math.Min(Math.Min(a, b), c)처럼 작성하면 세 값 중 최솟값을 구할 수 있습니다. 또한 배열이나 컬렉션 전체에서 최솟값을 찾아야 한다면 LINQ의 Min() 확장 메서드를 사용하는 것이 더 효율적입니다.