Decimal.ToUInt16(Decimal) Decimal.ToUInt16(Decimal) Decimal.ToUInt16(Decimal) Decimal.ToUInt16(Decimal) Method

定義

重要

此 API 不符合 CLS 規範。

符合 CLS 規範替代方案
System.Decimal.ToInt32(Decimal)

將指定的 Decimal 值轉換為對等的 16 位元不帶正負號整數。Converts the value of the specified Decimal to the equivalent 16-bit unsigned integer.

public:
 static System::UInt16 ToUInt16(System::Decimal value);
[System.CLSCompliant(false)]
public static ushort ToUInt16 (decimal value);
static member ToUInt16 : decimal -> uint16
Public Shared Function ToUInt16 (value As Decimal) As UShort

參數

value
Decimal Decimal Decimal Decimal

要轉換的十進位數字。The decimal number to convert.

傳回

16 位元不帶正負號的整數,等於 value 的值。A 16-bit unsigned integer equivalent to the value of value.

例外狀況

value 大於 MaxValue 或小於 MinValuevalue is greater than MaxValue or less than MinValue.

範例

下列範例會使用ToUInt16方法,將十進位數轉換成UInt16值。The following example uses the ToUInt16 method to convert decimal numbers to UInt16 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 {
            ushort number = Decimal.ToUInt16(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
//     65535.999 --> 65535
//     OverflowException: 65536
//     32767.999 --> 32767
//     32768 --> 32768
//     -0.999 --> 0
//     OverflowException: -1
//     OverflowException: -32768.999
//     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 UShort = Decimal.ToUInt16(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
'     65535.999 --> 65535
'     OverflowException: 65536
'     32767.999 --> 32767
'     32768 --> 32768
'     -0.999 --> 0
'     OverflowException: -1
'     OverflowException: -32768.999
'     OverflowException: -32769

備註

傳回值是十進位值的整數部分;小數數位會被截斷。The return value is the integral part of the decimal value; fractional digits are truncated.

您也可以Explicit使用指派Decimal運算子,將值轉換成16位不帶正負號的整數。You can also convert a Decimal value to a 16-bit unsigned integer by using the Explicit assignment operator. 因為運算子會執行縮小轉換,所以您必須在中C#使用轉型運算子或 Visual Basic 中的轉換函數。Because the operator performs a narrowing conversion, you must use a casting operator in C# or a conversion function in Visual Basic.

適用於

另請參閱