Sdílet prostřednictvím


Decimal.ToUInt16(Decimal) Metoda

Definice

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Alternativa odpovídající specifikaci CLS
System.Decimal.ToInt32(Decimal)

Převede hodnotu zadaného Decimal na ekvivalentní 16bitové celé číslo bez znaménka.

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

Parametry

value
Decimal

Desítkové číslo k převodu.

Návraty

16bitové celé číslo bez znaménka ekvivalentní hodnotě value.

Atributy

Výjimky

value je větší než UInt16.MaxValue nebo menší než UInt16.MinValue.

Příklady

Následující příklad používá metodu k převodu ToUInt16 desetinných čísel na UInt16 hodnoty.

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
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.ToUInt16 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
//     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

Poznámky

Vrácená hodnota obsahuje celočíselnou část desetinné hodnoty; číslice za desetinnou čárkou jsou oříznuty.

Hodnotu můžete také převést Decimal na 16bitové celé číslo bez znaménka pomocí operátoru Explicit přiřazení. Protože operátor provádí zužující převod, musíte použít operátor přetypování v jazyce C# nebo převodní funkci v jazyce Visual Basic.

Platí pro

Viz také