Decimal.ToInt16(Decimal) Yöntem

Tanım

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

public:
 static short ToInt16(System::Decimal value);
public static short ToInt16 (decimal value);
static member ToInt16 : decimal -> int16
Public Shared Function ToInt16 (value As Decimal) As Short

Parametreler

value
Decimal

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

Döndürülenler

Int16

valuebir 16 bit işaretli tamsayı eşdeğeri.A 16-bit signed integer equivalent to value.

Özel durumlar

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

Örnekler

Aşağıdaki örnek, ondalık sayıları Int16 değerlerine dönüştürmek için ToInt16 yöntemini kullanır.The following example uses the ToInt16 method to convert decimal numbers to Int16 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 {
            short number = Decimal.ToInt16(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: 65535.999
//     OverflowException: 65536
//     32767.999 --> 32767
//     OverflowException: 32768
//     -0.999 --> 0
//     -1 --> -1
//     -32768.999 --> -32768
//     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 Short = Decimal.ToInt16(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: 65535.999
'     OverflowException: 65536
'     32767.999 --> 32767
'     OverflowException: 32768
'     -0.999 --> 0
'     -1 --> -1
'     -32768.999 --> -32768
'     OverflowException: -32769

Açıklamalar

Ayrıca, Explicit atama işlecini kullanarak bir Decimal değerini 16 bit tamsayıya dönüştürebilirsiniz.You can also convert a Decimal value to a 16-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.