개요
C#에서 long 형식은 64비트 부호 있는 정수를 나타냅니다. long 값은 별도의 캐스팅 없이 decimal 형식으로 암시적(자동) 변환이 가능합니다. 이는 decimal이 long보다 넓은 표현 범위와 높은 정밀도를 제공하기 때문에 데이터 손실 위험이 없기 때문입니다.
변환 방법
먼저 long 변수에 원하는 값을 설정합니다.
long val = 989678876876876;
그다음 단순히 대입 연산자(=)를 사용하여 값을 할당하면 컴파일러가 자동으로 long을 decimal로 변환해 줍니다.
dec = val;
실제 동작을 확인할 수 있는 또 다른 예제를 살펴보겠습니다.
예제
using System;
public class Demo {
public static void Main() {
long val = 76755565656565;
decimal dec;
Console.WriteLine("Implicit conversion from 64-bit signed integer (long) to Decimal");
dec = val;
Console.WriteLine("Decimal : " + dec);
}
}실행 결과
Implicit conversion from 64-bit signed integer (long) to Decimal Decimal : 76755565656565
정리
long에서 decimal로의 변환은 명시적 캐스팅 없이 대입문 하나만으로 수행됩니다. 컴파일러가 암시적 변환을 처리하며, 이 과정에서 값의 손실이나 예외는 발생하지 않습니다. 반면 반대 방향인 decimal에서 long으로의 변환은 표현 범위 차이로 인해 명시적 캐스팅이 필요하고 오버플로 위험이 있으므로 주의해서 사용해야 합니다.