Decimal.ToInt16(Decimal) 方法

定义

将指定的 Decimal 值转换为等效的 16 位有符号整数。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

参数

value
Decimal

要转换的十进制数。The decimal number to convert.

返回

等效于 value 的 16 位有符号整数。A 16-bit signed integer equivalent to value.

异常

value 小于 MinValue 或大于 MaxValuevalue is less than MinValue or greater than MaxValue.

示例

下面的示例使用 ToInt16 方法将十进制数字转换为 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

注解

还可以通过使用 Explicit 赋值运算符将 Decimal 值转换为16位整数。You can also convert a Decimal value to a 16-bit integer by using the Explicit assignment operator. 由于运算符执行收缩转换,因此必须在 Visual Basic 中C#使用转换运算符或转换函数。Because the operator performs a narrowing conversion, you must use a casting operator in C# or a conversion function in Visual Basic.

适用于

另请参阅