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

C#에서 32비트 부호 없는 정수(uint)를 10진수(decimal)로 암시적 변환하는 방법

C#에서 32비트 부호 없는 정수(uint)를 10진수(decimal)로 변환할 때는 별도의 캐스팅 연산자 없이 값만 대입하면 되는 암시적 변환(implicit conversion)이 지원됩니다.

먼저 uint 변수를 선언합니다.

uint val = 342741539;

decimaluint가 가질 수 있는 모든 값(0 ~ 4,294,967,295)을 데이터 손실 없이 표현할 수 있기 때문에, 단순히 변수에 대입하기만 하면 컴파일러가 자동으로 형식을 변환해 줍니다.

decimal dec;
// 암시적 변환
dec = val;

전체 예제 코드

using System;
public class Demo {
   public static void Main() {
      uint val = 342741539;
      decimal dec;
      // 암시적 변환
      dec = val;
      Console.WriteLine("Decimal = " + dec);
   }
}

실행 결과

Decimal = 342741539

참고 사항

암시적 변환이 가능한 이유는 decimal의 표현 범위와 정밀도가 uint보다 크기 때문입니다. 반대로 decimaluint로 변환할 때는 값 손실 가능성이 있으므로 명시적 캐스팅((uint))이 필요합니다.