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

C# Math.Abs() 메서드 – 숫자의 절댓값 구하는 방법

C#에서 Math.Abs() 메서드는 지정된 숫자의 절댓값(absolute value)을 반환하는 데 사용됩니다. 이 메서드는 decimal, double, short(16비트 부호 있는 정수), int, long, sbyte, float 등 다양한 숫자 형식에 대해 오버로드되어 있어, 어떤 숫자 형식이든 절댓값을 손쉽게 계산할 수 있습니다.

절댓값이란 수직선 위에서 해당 숫자가 원점(0)으로부터 떨어진 거리를 의미하므로, 음수가 입력되면 양수로 변환되고 양수나 0이 입력되면 그대로 반환됩니다.

예제 1: double 형식의 절댓값 구하기

다음 예제는 Math.Abs() 메서드를 사용하여 double 형식 숫자의 절댓값을 반환하는 방법을 보여줍니다.

using System;
class Demo {
   public static void Main(){
      Double val1 = 30.40;
      Double val2 = Double.MinValue;
      Double val3 = Double.MaxValue;
      Console.WriteLine("Absolute value of {0} : {1}", val1, Math.Abs(val1));
      Console.WriteLine("Absolute value of {0} : {1}", val2, Math.Abs(val2));
      Console.WriteLine("Absolute value of {0} : {1}", val3, Math.Abs(val3));
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Absolute value of 30.4 : 30.4
Absolute value of -1.79769313486232E+308 : 1.79769313486232E+308
Absolute value of 1.79769313486232E+308 : 1.79769313486232E+308

출력 결과를 보면 음수인 Double.MinValue의 절댓값은 양수로 변환되어 반환되며, 이미 양수인 값은 그대로 유지되는 것을 확인할 수 있습니다.

예제 2: 16비트 부호 있는 정수(short)의 절댓값 구하기

이번에는 Math.Abs() 메서드를 사용하여 16비트 부호 있는 정수(short)의 절댓값을 반환하는 예제를 살펴보겠습니다.

using System;
class Demo {
   public static void Main(){
      short val1 = -300;
      short val2 = Int16.MaxValue;
      short val3 = 0;
      Console.WriteLine("Absolute value of {0} : {1}", val1, Math.Abs(val1));
      Console.WriteLine("Absolute value of {0} : {1}", val2, Math.Abs(val2));
      Console.WriteLine("Absolute value of {0} : {1}", val3, Math.Abs(val3));
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Absolute value of -300 : 300
Absolute value of 32767 : 32767
Absolute value of 0 : 0

주의 사항

정수 형식(int, long, short, sbyte)의 경우, 해당 형식이 표현할 수 있는 최솟값(예: Int32.MinValue)을 Math.Abs()에 전달하면 양수로 표현할 수 없기 때문에 System.OverflowException이 발생합니다. 반면 double이나 decimal처럼 넓은 범위를 지원하는 형식에서는 이러한 제약이 상대적으로 적습니다. 따라서 실무에서는 입력 값의 범위를 항상 고려하여 사용하는 것이 좋습니다.