Decimal.ToInt16(Decimal) Metoda

Definice

Převede hodnotu zadaného Decimal na ekvivalentní 16bitové celé číslo se znaménkem.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

Parametry

value
Decimal

Desítkové číslo k převodu.The decimal number to convert.

Návraty

16bitové celé číslo se znaménkem, které odpovídá value.A 16-bit signed integer equivalent to value.

Výjimky

value je menší než MinValue nebo větší než MaxValue.value is less than MinValue or greater than MaxValue.

Příklady

Následující příklad používá metodu ToInt16 pro převod desítkových čísel na hodnoty Int16.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

Poznámky

Můžete také převést Decimal hodnotu na 16bitové celé číslo pomocí operátoru přiřazení Explicit.You can also convert a Decimal value to a 16-bit integer by using the Explicit assignment operator. Vzhledem k tomu, že operátor provádí zužující převod, je nutné použít operátor přetypování C# v nebo funkci konverze v Visual Basic.Because the operator performs a narrowing conversion, you must use a casting operator in C# or a conversion function in Visual Basic.

Platí pro

Viz také