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

C# Decimal.Floor() 메서드 완벽 정리 – 소수점 내림 처리 방법

C#의 Decimal.Floor() 메서드는 지정된 Decimal 숫자를 음의 무한대(-∞) 방향으로 가장 가까운 정수로 내림하는 메서드입니다. 즉, 소수점 이하를 버리고 원래 값보다 작거나 같은 최대 정수를 반환합니다.

문법(Syntax)

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

public static decimal Floor (decimal val);

매개변수 val은 내림할 대상 값입니다. 이 메서드는 정적(static) 메서드이므로 객체 생성 없이 Decimal.Floor(val) 형태로 바로 호출할 수 있습니다.

예제 1: 양수에 Floor() 적용하기

먼저 양수 Decimal 값에 Decimal.Floor() 메서드를 적용하는 예제를 살펴보겠습니다.

using System;
public class Demo {
    public static void Main(){
        Decimal val1 = 25.25m;
        Decimal val2 = 11.85m;
        Console.WriteLine("Decimal 1 = "+val1);
        Console.WriteLine("Decimal 2 = "+val2);
        Console.WriteLine("Floor (val1) = "+Decimal.Floor(val1));
        Console.WriteLine("Floor (val2) = "+Decimal.Floor(val2));
    }
}

출력 결과

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

Decimal 1 = 25.25
Decimal 2 = 11.85
Floor (val1) = 25
Floor (val2) = 11

양수의 경우 단순히 소수점 이하가 버려지는 것처럼 동작합니다. 25.25는 25로, 11.85는 11로 내림되어 반환됩니다.

예제 2: 음수에 Floor() 적용하기

Floor() 메서드의 진짜 특징은 음수를 다룰 때 드러납니다. 다음 예제를 통해 확인해 보겠습니다.

using System;
public class Demo {
    public static void Main(){
        Decimal val1 = -25.25m;
        Decimal val2 = -11.85m;
        Console.WriteLine("Decimal 1 = "+val1);
        Console.WriteLine("Decimal 2 = "+val2);
        Console.WriteLine("Floor (val1) = "+Decimal.Floor(val1));
        Console.WriteLine("Floor (val2) = "+Decimal.Floor(val2));
    }
}

출력 결과

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

Decimal 1 = -25.25
Decimal 2 = -11.85
Floor (val1) = -26
Floor (val2) = -12

음수에서는 특히 주의가 필요합니다. -25.25의 결과가 -25가 아니라 -26으로 나오는 이유는, Floor()가 항상 "음의 무한대 방향", 즉 더 작은 쪽으로 내림하기 때문입니다. 이는 단순히 소수점을 잘라내는 Decimal.Truncate()(-25.25 → -25)와의 중요한 차이점이므로, 개발 시 의도에 맞는 메서드를 선택하는 것이 좋습니다.