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

C# Math.Min() 메서드 완벽 정리: 두 숫자 중 최솟값 구하기

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 형식 비교

이번에는 intfloat 형식의 숫자를 비교하는 예제입니다 −

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() 확장 메서드를 사용하는 것이 더 효율적입니다.