C#에서 Decimal을 Int64(long)로 변환하기
C#에서 decimal 타입의 값을 Int64(long)로 변환하려면 Convert.ToInt64() 메서드를 사용하면 됩니다.
먼저 다음과 같은 decimal 변수가 있다고 가정해 보겠습니다.
decimal d = 310.23m;
이 값을 Int64로 변환하려면 Convert.ToInt64() 메서드에 해당 변수를 전달하기만 하면 됩니다.
long res;
res = Convert.ToInt64(d);
그럼 실제 동작 과정을 확인할 수 있는 전체 예제를 살펴보겠습니다.
예제
using System;
class Demo {
static void Main() {
decimal d = 190.66m;
long res;
res = Convert.ToInt64(d);
Console.WriteLine("Converted Decimal '{0}' to Int64 value {1}", d, res);
}
}
출력 결과
Converted Decimal '190.66' to Int64 value 191
참고 사항
Convert.ToInt64() 메서드는 소수점 이하 값을 단순히 잘라내는 것이 아니라 반올림하여 처리합니다. 위 예제에서 190.66이 191로 변환된 것을 확인할 수 있습니다.
또한 이 메서드는 .NET의 기본 반올림 방식인 은행원 반올림(Banker's Rounding)을 따릅니다. 따라서 소수 부분이 정확히 0.5인 경우에는 가장 가까운 짝수로 반올림됩니다. 예를 들어 190.5는 190으로, 191.5는 192로 변환됩니다.