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

C# MathF.Truncate() 메서드 완벽 가이드: 사용법과 예제 코드

C#의 MathF.Truncate() 메서드는 지정된 단정밀도(single-precision) 부동 소수점 숫자에서 소수 부분을 제거하고 정수 부분만 계산하는 데 사용됩니다. 이 메서드는 숫자를 반올림하지 않고 항상 소수점 이하를 버린다는 점이 특징입니다.

문법(Syntax)

MathF.Truncate() 메서드의 기본 문법은 다음과 같습니다.

public static float Truncate (float val);

여기서 val은 잘라내기(truncation)를 수행할 대상 숫자를 의미합니다. 반환값은 float 형식으로, 입력 값보다 작거나 같은 정수(양수인 경우) 또는 크거나 같은 정수(음수인 경우)가 반환됩니다.

예제 1: 무한대 값 처리

첫 번째 예제는 양의 무한대와 음의 무한대 값을 MathF.Truncate() 메서드에 전달했을 때의 동작을 보여줍니다.

using System;
public class Demo {
   public static void Main(){
      float val1 = float.PositiveInfinity;
      float val2 = float.NegativeInfinity;
      Console.WriteLine("MathF.Truncate(val1) = "+MathF.Truncate(val1));
      Console.WriteLine("MathF.Truncate(val2) = "+MathF.Truncate(val2));
   }
}

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

MathF.Truncate(val1) = Infinity
MathF.Truncate(val2) = -Infinity

무한대 값은 정수 부분을 가질 수 없으므로, 원래의 무한대 값이 그대로 반환되는 것을 확인할 수 있습니다.

예제 2: 일반적인 실수 값 처리

두 번째 예제는 일반적인 실수(float) 값에 대해 MathF.Truncate() 메서드를 적용한 결과입니다.

using System;
public class Demo {
   public static void Main(){
      float val1 = 76.8787f;
      float val2 = 4646.5656f;
      Console.WriteLine("MathF.Truncate(val1) = "+MathF.Truncate(val1));
      Console.WriteLine("MathF.Truncate(val2) = "+MathF.Truncate(val2));
   }
}

실행 결과는 다음과 같습니다.

MathF.Truncate(val1) = 76
MathF.Truncate(val2) = 4646

출력 결과에서 볼 수 있듯이, 76.8787은 76으로, 4646.5656은 4646으로 소수점 이하가 단순히 제거됩니다. 반올림이 아닌 절삭(truncation) 방식이기 때문에 소수 첫째 자리와 관계없이 항상 정수 부분만 남게 됩니다.

정리

MathF.Truncate() 메서드는 다음과 같은 경우에 유용하게 활용할 수 있습니다.

  • 소수점 이하를 버리고 정수 부분만 필요한 경우
  • 반올림(MathF.Round)이나 올림(MathF.Ceiling), 내림(MathF.Floor)과 달리 단순 절삭이 필요한 경우
  • float 타입 데이터를 안전하게 정수화해야 하는 계산 로직

특히 MathF.Truncate()는 .NET Core 2.0 이상에서 사용할 수 있으며, double 타입용 Math.Truncate()와 동일한 기능을 float 타입에 최적화하여 제공합니다.