# Decimal.ToUInt16(Decimal)Decimal.ToUInt16(Decimal)Decimal.ToUInt16(Decimal)Decimal.ToUInt16(Decimal) Method

## Definition

Important

This API is not CLS-compliant.

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

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

``````public:
static System::UInt16 ToUInt16(System::Decimal value);``````
``````[System.CLSCompliant(false)]
public static ushort ToUInt16 (decimal value);``````
``static member ToUInt16 : decimal -> uint16``
``Public Shared Function ToUInt16 (value As Decimal) As UShort``

#### Parameters

value
Decimal Decimal Decimal Decimal

The decimal number to convert.

#### Returns

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

#### Exceptions

`value` is greater than MaxValue or less than MinValue.

## Examples

The following example uses the ToUInt16 method to convert decimal numbers to UInt16 values.

``````using System;

class Example
{
public static void Main( )
{
decimal[] values = { 123m, new Decimal(123000, 0, 0, false, 3),
123.999m, 65535.999m, 65536m,
32767.999m, 32768m, -0.999m,
-1m,  -32768.999m, -32769m };

foreach (var value in values) {
try {
ushort number = Decimal.ToUInt16(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
//     65535.999 --> 65535
//     OverflowException: 65536
//     32767.999 --> 32767
//     32768 --> 32768
//     -0.999 --> 0
//     OverflowException: -1
//     OverflowException: -32768.999
//     OverflowException: -32769
``````
``````Module Example
Public Sub Main()
Dim values() As Decimal = { 123d, New Decimal(123000, 0, 0, false, 3),
123.999d, 65535.999d, 65536d,
32767.999d, 32768d, -0.999d,
-1d,  -32768.999d, -32769d }

For Each value In values
Try
Dim number As UShort = Decimal.ToUInt16(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
'     65535.999 --> 65535
'     OverflowException: 65536
'     32767.999 --> 32767
'     32768 --> 32768
'     -0.999 --> 0
'     OverflowException: -1
'     OverflowException: -32768.999
'     OverflowException: -32769
``````

## Remarks

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

You can also convert a Decimal value to a 16-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.