다음을 통해 공유


Decimal.ToUInt32(Decimal) 메서드

정의

중요

이 API는 CLS 규격이 아닙니다.

CLS 대체 규격
System.Decimal.ToInt64(Decimal)

지정된 Decimal의 값을 해당하는 32비트 부호 없는 정수로 변환합니다.

public:
 static System::UInt32 ToUInt32(System::Decimal d);
[System.CLSCompliant(false)]
public static uint ToUInt32 (decimal d);
[<System.CLSCompliant(false)>]
static member ToUInt32 : decimal -> uint32
Public Shared Function ToUInt32 (d As Decimal) As UInteger

매개 변수

d
Decimal

변환할 10진수입니다.

반환

d의 값에 해당하는 32비트 부호 없는 정수입니다.

특성

예외

d 가 음수이거나 UInt32.MaxValue보다 큰 경우

예제

다음 예제에서는 메서드를 ToUInt32 사용하여 10진수를 값으로 UInt32 변환합니다.

using System;

class Example
{
   public static void Main( )
   {
      decimal[] values = { 123m, new decimal(123000, 0, 0, false, 3),
                           123.999m, 4294967295.999m, 4294967296m,
                           4294967296m, 2147483647.999m, 2147483648m,
                           -0.999m, -1m, -2147483648.999m, -2147483649m };

      foreach (var value in values) {
         try {
            uint number = Decimal.ToUInt32(value);
            Console.WriteLine("{0} --> {1}", value, number);
         }
         catch (OverflowException e)
         {
             Console.WriteLine("{0}: {1}", e.GetType().Name, value);
         }
      }
   }
}
// The example displays the following output:
//     123 --> 123
//     123.000 --> 123
//     123.999 --> 123
//     4294967295.999 --> 4294967295
//     OverflowException: 4294967296
//     OverflowException: 4294967296
//     2147483647.999 --> 2147483647
//     2147483648 --> 2147483648
//     -0.999 --> 0
//     OverflowException: -1
//     OverflowException: -2147483648.999
//     OverflowException: -2147483649
open System

let values = 
    [ 123m; Decimal(123000, 0, 0, false, 3uy)
      123.999m; 4294967295.999m; 4294967296m
      4294967296m; 2147483647.999m; 2147483648m
      -0.999m; -1m; -2147483648.999m; -2147483649m ]

for value in values do
    try
        let number = Decimal.ToUInt32 value
        printfn $"{value} --> {number}"
    with :? OverflowException as e ->
        printfn $"{e.GetType().Name}: {value}"

// The example displays the following output:
//     123 --> 123
//     123.000 --> 123
//     123.999 --> 123
//     4294967295.999 --> 4294967295
//     OverflowException: 4294967296
//     OverflowException: 4294967296
//     2147483647.999 --> 2147483647
//     2147483648 --> 2147483648
//     -0.999 --> 0
//     OverflowException: -1
//     OverflowException: -2147483648.999
//     OverflowException: -2147483649
Module Example
   Public Sub Main()
      Dim values() As Decimal = { 123d, New Decimal(123000, 0, 0, false, 3), 
                                  123.999d, 4294967295.999d, 4294967296d,
                                  4294967296d, 2147483647.999d, 2147483648d, 
                                  -0.999d, -1d, -2147483648.999d, -2147483649d }

      For Each value In values
         Try
            Dim number As UInteger = Decimal.ToUInt32(value)
            Console.WriteLine("{0} --> {1}", value, number)       
         Catch e As OverflowException
             Console.WriteLine("{0}: {1}", e.GetType().Name, value)
         End Try   
      Next
   End Sub
End Module
' The example displays the following output:
'     123 --> 123
'     123.000 --> 123
'     123.999 --> 123
'     4294967295.999 --> 4294967295
'     OverflowException: 4294967296
'     OverflowException: 4294967296
'     2147483647.999 --> 2147483647
'     2147483648 --> 2147483648
'     -0.999 --> 0
'     OverflowException: -1
'     OverflowException: -2147483648.999
'     OverflowException: -2147483649

설명

반환 값은 10진수 값의 정수 부분입니다. 소수 자릿수는 잘립니다.

대입 연산자를 Decimal 사용하여 Explicit 값을 부호 없는 32비트 정수로 변환할 수도 있습니다. 연산자는 축소 변환을 수행하므로 C#의 캐스팅 연산자 또는 Visual Basic의 변환 함수를 사용해야 합니다.

적용 대상

추가 정보