C# Truncate 메서드란?
C#에서 Truncate 메서드는 소수점 이하의 숫자를 모두 잘라내고 정수 부분만 남기는 기능을 합니다. 반올림이 아닌 단순 절사(버림) 방식으로 동작하기 때문에, 소수점 뒤에 어떤 숫자가 오더라도 그대로 제거됩니다.
예를 들어 다음과 같은 숫자가 있다고 가정해 보겠습니다.
20.35M
소수점 이하 숫자를 제거하려면 decimal.Truncate() 메서드를 사용합니다.
decimal.Truncate(20.35M)
실행 결과는 20이 됩니다.
예제 코드
전체 코드는 다음과 같습니다.
using System;
class Demo {
static void Main() {
decimal dc = 20.35M;
Console.WriteLine(decimal.Truncate(dc));
}
}
출력 결과:
20
Truncate와 Math.Floor의 차이점
Truncate()와 비슷한 역할을 하는 메서드로 Math.Floor()가 있습니다. 두 메서드의 차이는 음수를 처리할 때 드러납니다.
decimal.Truncate(-20.35M)→ -20 (0을 향해 절사)Math.Floor(-20.35M)→ -21 (음의 무한대 방향으로 내림)
양수에서는 두 메서드의 결과가 동일하지만, 음수에서는 결과가 달라지므로 프로그램의 요구 사항에 맞게 적절한 메서드를 선택하는 것이 중요합니다.