Decimal.ToInt32(Decimal) Yöntem

Tanım

Belirtilen Decimal değerini, eşdeğer 32 bitlik işaretli tamsayıya dönüştürür.Converts the value of the specified Decimal to the equivalent 32-bit signed integer.

public:
 static int ToInt32(System::Decimal d);
public static int ToInt32 (decimal d);
static member ToInt32 : decimal -> int
Public Shared Function ToInt32 (d As Decimal) As Integer

Parametreler

d
Decimal

Dönüştürülecek ondalık sayı.The decimal number to convert.

Döndürülenler

Int32

ddeğerine denk 32 bitlik işaretli tamsayı.A 32-bit signed integer equivalent to the value of d.

Özel durumlar

d, MinValue veya MaxValuedaha büyük.d is less than MinValue or greater than MaxValue.

Örnekler

Aşağıdaki örnek, ondalık sayıları Int32 değerlerine dönüştürmek için ToInt32 yöntemini kullanır.The following example uses the ToInt32 method to convert decimal numbers to Int32 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 {
            int number = Decimal.ToInt32(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
//      OverflowException: 4294967295.999
//      OverflowException: 4294967296
//      OverflowException: 4294967296
//      2147483647.999 --> 2147483647
//      OverflowException: 2147483648
//      -0.999 --> 0
//      -1 --> -1
//      -2147483648.999 --> -2147483648
//      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 Integer = Decimal.ToInt32(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
'       OverflowException: 4294967295.999
'       OverflowException: 4294967296
'       OverflowException: 4294967296
'       2147483647.999 --> 2147483647
'       OverflowException: 2147483648
'       -0.999 --> 0
'       -1 --> -1
'       -2147483648.999 --> -2147483648
'       OverflowException: -2147483649
' 

Açıklamalar

Dönüş değeri ondalık değerin dahili bir parçasıdır; kesirli basamaklar ise kesilir.The return value is the integral part of the decimal value; fractional digits are truncated.

Ayrıca, Explicit atama işlecini kullanarak bir Decimal değerini 32 bitlik bir tamsayıya dönüştürebilirsiniz.You can also convert a Decimal value to a 32-bit integer by using the Explicit assignment operator. İşleci bir daraltma dönüştürmesi gerçekleştirdiğinden, içinde C# bir atama işleci veya Visual Basic bir dönüştürme işlevi kullanmanız gerekir.Because the operator performs a narrowing conversion, you must use a casting operator in C# or a conversion function in Visual Basic.

Şunlara uygulanır

Ayrıca bkz.