C#에서 Math.Ceiling() 메서드는 지정된 숫자보다 크거나 같은 정수 중 가장 작은 값, 즉 소수점을 올림한 값을 반환하는 데 사용됩니다. 일반적인 반올림과 달리, 소수 부분이 아주 작더라도 항상 위쪽 정수로 올려준다는 점이 특징입니다.
문법(Syntax)
Math.Ceiling() 메서드는 다음과 같은 두 가지 오버로드 형태를 제공합니다.
public static decimal Ceiling(decimal val); public static double Ceiling(double val);
첫 번째 문법에서 매개변수 val은 decimal 타입의 숫자이며, 두 번째 문법에서는 double 타입의 숫자입니다. 반환 타입도 각각 decimal과 double로 대응되므로, 상황에 맞는 자료형을 선택하여 사용하면 됩니다.
예제 1: decimal 타입에 Math.Ceiling() 적용하기
먼저 decimal 값을 대상으로 Math.Ceiling() 메서드를 활용하는 예제를 살펴보겠습니다.
using System;
public class Demo {
public static void Main() {
decimal val1 = 9.99M;
decimal val2 = -5.10M;
Console.WriteLine("Result = " + Math.Ceiling(val1));
Console.WriteLine("Result = " + Math.Ceiling(val2));
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Result = 10 Result = -5
9.99는 올림되어 10이 되고, 음수인 -5.10은 -5로 처리된 것에 주목하세요. Math.Ceiling()은 수직선 기준으로 오른쪽(큰 쪽) 방향의 가장 가까운 정수를 찾기 때문에, 음수에서도 절댓값이 커지는 것이 아니라 오히려 0에 가까워지는 방향으로 올림됩니다.
예제 2: double 타입에 Math.Ceiling() 적용하기
이번에는 double 타입의 여러 값을 대상으로 Math.Ceiling() 메서드의 동작을 확인해 보겠습니다.
using System;
public class Demo {
public static void Main() {
double val1 = 3.1;
double val2 = 55.99;
double val3 = -55.99;
Console.WriteLine("Result = " + Math.Ceiling(val1));
Console.WriteLine("Result = " + Math.Ceiling(val2));
Console.WriteLine("Result = " + Math.Ceiling(val3));
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Result = 4 Result = 56 Result = -55
소수 부분이 얼마나 작든(3.1 → 4), 크든(55.99 → 56) 무조건 위쪽 정수로 올림되며, 음수(-55.99 → -55) 역시 큰 쪽 정수로 반환됨을 확인할 수 있습니다.
정리
Math.Ceiling() 메서드는 요금 계산, 페이지네이션, 재고 단위 계산 등 소수점 이하를 잘라 올려야 하는 상황에서 매우 유용하게 활용됩니다. 반올림을 수행하는 Math.Round(), 내림을 수행하는 Math.Floor()와 함께 비교해 가며 익혀두면 숫자 처리 로직을 더욱 정확하게 구현할 수 있습니다.