2011-06-10 2 views
3

가능한 중복 :
Why can't I unbox an int as a decimal?C# /. NET :이 소수를 int로 변환 할 수없는 이유는 무엇입니까?

좋아이 캐스트가 작동하는 이유는, C#을/NET 전문가는, 누군가가 말해 줄 수 :

static void Main(string[] args) 
{ 
    int _int = 0; 
    decimal _decimal = 1; 

    _int = (int)_decimal; 

    Console.ReadLine(); 
} 

을 ...하지만의도. 이것들은?

static void Main(string[] args) 
{ 
    int _int = 0; 
    decimal d = 1; 
    object _decimal = d; 

    _int = (int)_decimal; 

    Console.ReadLine(); 
} 

static void Main(string[] args) 
{ 
    int _int = 0; 
    object _decimal = 1M; 

    _int = (int)_decimal; 

    Console.ReadLine(); 
} 
내가 너무 오래 명시 적으로 선언 진수 유형 내가 무엇을에서 주조하고 같이 int로 소수를 캐스팅 할 수 있지만, 소수가 객체에 저장 될 때 내가 int로 소수를 캐스팅 할 수

유형? 그게 뭐야?

참고 : 아마도 Convert.ToInt32()를 사용할 수는 있지만 여기서는 작동하지 않는다고 생각하고 있습니다.

+1

"_int = (int) (decimal) _decimal"의 두 단계로 수행 할 수도 있습니다. – Joe

+0

이것에 대한 대답은 관련 링크 중 하나 인 것 같습니다 : [정수를 정수로 unbox 할 수없는 이유는 무엇입니까?] (http://stackoverflow.com/questions/1085097/why-cant-i-unbox- an-a-a-decimal) – RickL

답변

3

프레임 워크에서 decimal에서 int로 명시적인 변환이 정의되어 있기 때문입니다. 이 MSDN documentation을 읽어보십시오.

관련 문제