C#의 Math.Max() 메서드는 지정된 두 숫자 중에서 더 큰 값을 반환하는 System 네임스페이스의 정적(static) 메서드입니다. 이 메서드는 byte, short, int, long, float, double, decimal 등 다양한 숫자 형식에 대해 오버로드(overload)되어 있기 때문에, 어떤 숫자 형식을 사용하더라도 동일한 방식으로 호출할 수 있습니다.
조건문(if-else)을 직접 작성하지 않고도 한 줄로 최댓값을 구할 수 있어 코드가 간결해지고 가독성이 향상됩니다. 만약 두 값이 같다면 해당 값을 그대로 반환합니다.
구문(Syntax)
Math.Max() 메서드의 기본 구문은 다음과 같습니다.
public static ulong Max (ulong val1, ulong val2); public static uint Max (uint val1, uint val2); public static ushort Max (ushort val1, ushort val2); public static float Max (float val1, float val2); public static byte Max (byte val1, byte val2); public static long Max (long val1, long val2);
예제 1: 다양한 숫자 형식에서 사용하기
다음 예제는 Math.Max() 메서드를 사용하여 byte, decimal, double, short 형식의 두 값 중에서 더 큰 값을 구하는 방법을 보여줍니다.
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.Max(val1, val2));
Console.WriteLine("두 decimal 값 중 최댓값 = "+Math.Max(val3, val4));
Console.WriteLine("두 double 값 중 최댓값 = "+Math.Max(val5, val6));
Console.WriteLine("두 short 값 중 최댓값 = "+Math.Max(val7, val8));
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
두 byte 값 중 최댓값 = 15 두 decimal 값 중 최댓값 = 1500 두 double 값 중 최댓값 = 25.676843 두 short 값 중 최댓값 = 30
예제 2: int와 float 형식에서 사용하기
이번에는 int와 float 형식에 Math.Max() 메서드를 적용한 또 다른 예제입니다.
using System;
public class Demo {
public static void Main(){
int val1 = 10, val2 = 15;
float val3 = 10.8f, val4 = 25.6f;
Console.WriteLine("두 int 값 중 최댓값 = "+Math.Max(val1, val2));
Console.WriteLine("두 float 값 중 최댓값 = "+Math.Max(val3, val4));
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
두 int 값 중 최댓값 = 15 두 float 값 중 최댓값 = 25.6
정리
Math.Max() 메서드는 두 인수를 비교하여 항상 더 큰 쪽의 값을 반환하며, 두 값이 동일하면 그 값을 그대로 돌려줍니다. 참고로 float나 double 형식에서 인수 중 하나가 NaN(Not a Number)이면 결과도 NaN으로 반환되므로, 실수 데이터를 다룰 때는 유효성 검사를 함께 고려하는 것이 좋습니다. 반복문이나 비교 로직 없이 최댓값을 손쉽게 구할 수 있는 Math.Max()는 C# 프로그래밍에서 자주 활용되는 필수 메서드 중 하나입니다.