# Decimal Explicit Conversion (Decimal to Int32)

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Converts a Decimal to a 32-bit signed integer.

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

## Syntax

``````'Declaration
Public Shared Narrowing Operator CType ( _
value As Decimal _
) As Integer
``````
``````public static explicit operator int (
decimal value
)
``````

#### Return Value

Type: System.Int32
A 32-bit signed integer that represents the converted Decimal.

## Exceptions

Exception Condition
OverflowException

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

## Remarks

This operator supports the explicit conversion of a Decimal to a Int32. 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 an Int32 value by using C# and Visual Basic. To perform a conversion that is independent of language, you can call the ToInt32 or the Convert.ToInt32(Decimal) method.

## Examples

The following code example converts Decimal numbers to Int32 values using the explicit Decimal to Int32 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

#### Silverlight

Supported in: 5, 4, 3

#### Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

#### XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

## Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.