Decimal.ToInt16(Decimal) 方法

定義

將指定的 Decimal 值轉換為對等的 16 位元帶正負號整數。

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

參數

value
Decimal

要轉換的十進位數字。

傳回

16 位元帶正負號的整數,等於 value

例外狀況

value 小於 Int16.MinValue 或大於 Int16.MaxValue

範例

下列範例會 ToInt16 使用 方法,將十進位數轉換成 Int16 值。

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
open System

let values = 
    [ 123m; Decimal(123000, 0, 0, false, 3uy)
      123.999m; 65535.999m; 65536m
      32767.999m; 32768m; -0.999m
      -1m; -32768.999m; -32769m ]

for value in values do
    try
        let number = Decimal.ToInt16 value
        printfn $"{value} --> {number}"
    with :? OverflowException as e ->
        printfn $"{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

備註

您也可以使用 Explicit 指派運算子,將值轉換成 Decimal 16 位整數。 因為運算子會執行縮小轉換,所以您必須在 C# 中使用轉型運算子,或在 Visual Basic 中使用轉換函式。

適用於

另請參閱