Decimal ExplicitNarrowingExplicitExplicit Conversion (Decimal to UInt32)

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

Converts a Decimal to a 32-bit unsigned integer.

This API is not CLS-compliant. The CLS-compliant alternative is ToInt64(Decimal).

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

Syntax

Public Shared Narrowing Operator CType ( _
    value As Decimal _
) As UInteger
public static explicit operator uint (
    decimal value
)

Parameters

Return Value

Type: System..::.UInt32
A 32-bit unsigned integer that represents the converted Decimal.

Exceptions

Exception Condition
OverflowException

value is negative or greater than UInt32..::.MaxValue.

Remarks

This operator supports the explicit conversion of a Decimal to a UInt32. The syntax for such explicit conversions is language-dependent, and individual language compilers can provide different implementations and return different results. The example illustrates the different return values when you explicitly convert a Decimal value to a UInt32 value by using C# and Visual Basic. To perform a conversion that is independent of language, you can call the ToUInt32 or the Convert..::.ToUInt32(Decimal) method.

Examples

The following code example converts Decimal numbers to UInt32 values using the explicit Decimal to UInt32 conversion.

' Example of the explicit conversions from Decimal to Integer and 
' Decimal to UInteger.
Module Example

   Const formatter As String = "{0,17}{1,19}{2,19}"

   ' Convert the decimal argument catch exceptions that are thrown.
   Public Sub DecimalToU_Int32(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal argument As Decimal)
      Dim Int32Value As Object
      Dim UInt32Value As Object

      ' Convert the argument to an int value.
      Try
         Int32Value = CInt(argument)
      Catch ex As Exception
         Int32Value = ex.GetType().Name
      End Try

      ' Convert the argument to a uint value.
      Try
         UInt32Value = CUInt(argument)
      Catch ex As Exception
         UInt32Value = ex.GetType().Name
      End Try

      outputBlock.Text += String.Format(formatter, argument, _
          Int32Value, UInt32Value) + vbCrLf
   End Sub

   Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
      outputBlock.Text += String.Format(formatter, "Decimal Argument", _
          "Integer/Exception", "UInteger/Exception") + vbCrLf
      outputBlock.Text += String.Format(formatter, "----------------", _
          "-------------", "--------------") + vbCrLf

      ' Convert decimal values and display the results.
      DecimalToU_Int32(outputBlock, 123D)
      DecimalToU_Int32(outputBlock, New Decimal(123000, 0, 0, False, 3))
      DecimalToU_Int32(outputBlock, 123.999D)
      DecimalToU_Int32(outputBlock, 4294967295.999D)
      DecimalToU_Int32(outputBlock, 4294967296D)
      DecimalToU_Int32(outputBlock, 2147483647.999D)
      DecimalToU_Int32(outputBlock, 2147483648D)
      DecimalToU_Int32(outputBlock, -0.999D)
      DecimalToU_Int32(outputBlock, -1D)
      DecimalToU_Int32(outputBlock, -2147483648.999D)
      DecimalToU_Int32(outputBlock, -2147483649D)
   End Sub
End Module
' The example displays the following output:
'     Decimal Argument  Integer/Exception UInteger/Exception
'     ----------------      -------------     --------------
'                  123                123                123
'              123.000                123                123
'              123.999                124                124
'       4294967295.999  OverflowException  OverflowException
'           4294967296  OverflowException  OverflowException
'       2147483647.999  OverflowException         2147483648
'           2147483648  OverflowException         2147483648
'               -0.999                 -1  OverflowException
'                   -1                 -1  OverflowException
'      -2147483648.999  OverflowException  OverflowException
'          -2147483649  OverflowException  OverflowException
// Example of the explicit conversions from decimal to int and 
// decimal to uint.
using System;

class Example
{
   const string formatter = "{0,17}{1,19}{2,19}";

   // Get the exception type name; remove the namespace prefix.
   public static string GetExceptionType(Exception ex)
   {
      string exceptionType = ex.GetType().ToString();
      return exceptionType.Substring(
          exceptionType.LastIndexOf('.') + 1);
   }

   // Convert the decimal argument; catch exceptions that are thrown.
   public static void DecimalToU_Int32(System.Windows.Controls.TextBlock outputBlock, decimal argument)
   {
      object Int32Value;
      object UInt32Value;

      // Convert the argument to an int value.
      try
      {
         Int32Value = (int)argument;
      }
      catch (Exception ex)
      {
         Int32Value = GetExceptionType(ex);
      }

      // Convert the argument to a uint value.
      try
      {
         UInt32Value = (uint)argument;
      }
      catch (Exception ex)
      {
         UInt32Value = GetExceptionType(ex);
      }

      outputBlock.Text += String.Format(formatter, argument,
          Int32Value, UInt32Value) + "\n";
   }

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      outputBlock.Text += String.Format(
          "This example of the explicit conversions from decimal " +
          "to int \nand decimal to uint generates the following " +
          "output. It displays \nseveral converted decimal " +
          "values.\n") + "\n";
      outputBlock.Text += String.Format(formatter, "decimal argument",
          "int/exception", "uint/exception") + "\n";
      outputBlock.Text += String.Format(formatter, "----------------",
          "-------------", "--------------") + "\n";

      // Convert decimal values and display the results.
      DecimalToU_Int32(outputBlock, 123M);
      DecimalToU_Int32(outputBlock, new decimal(123000, 0, 0, false, 3));
      DecimalToU_Int32(outputBlock, 123.999M);
      DecimalToU_Int32(outputBlock, 4294967295.999M);
      DecimalToU_Int32(outputBlock, 4294967296M);
      DecimalToU_Int32(outputBlock, 2147483647.999M);
      DecimalToU_Int32(outputBlock, 2147483648M);
      DecimalToU_Int32(outputBlock, -0.999M);
      DecimalToU_Int32(outputBlock, -1M);
      DecimalToU_Int32(outputBlock, -2147483648.999M);
      DecimalToU_Int32(outputBlock, -2147483649M);
   }
}

/*
This example of the explicit conversions from decimal to int
and decimal to uint generates the following output. It displays
several converted decimal values.

 decimal argument      int/exception     uint/exception
 ----------------      -------------     --------------
              123                123                123
          123.000                123                123
          123.999                123                123
   4294967295.999  OverflowException         4294967295
       4294967296  OverflowException  OverflowException
   2147483647.999         2147483647         2147483647
       2147483648  OverflowException         2147483648
           -0.999                  0                  0
               -1                 -1  OverflowException
  -2147483648.999        -2147483648  OverflowException
      -2147483649  OverflowException  OverflowException
*/

Version Information

Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Platforms

Windows Phone

See Also

Reference

Decimal Structure

ExplicitNarrowingExplicitExplicit Overload

System Namespace

UInt32