Decimal.ToUInt32(Decimal) Method

Definition

Important

This API is not CLS-compliant.

CLS-compliant alternative
System.Decimal.ToInt64(Decimal)

Converts the value of the specified Decimal to the equivalent 32-bit unsigned integer.

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

Parameters

d
Decimal

The decimal number to convert.

Returns

UInt32

A 32-bit unsigned integer equivalent to the value of `d`.

Attributes

Exceptions

`d` is negative or greater than MaxValue.

Examples

The following example uses the ToUInt32 method to convert decimal numbers to UInt32 values.

``````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
``````
``````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
``````

Remarks

The return value is the integral part of the decimal value; fractional digits are truncated.

You can also convert a Decimal value to an 32-bit unsigned integer by using the Explicit assignment operator. Because the operator performs a narrowing conversion, you must use a casting operator in C# or a conversion function in Visual Basic.