Decimal.ToUInt16(Decimal) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Wichtig
Diese API ist nicht CLS-kompatibel.
- CLS-kompatible Alternative
- System.Decimal.ToInt32(Decimal)
Wandelt den Wert des angegebenen Decimal Werts in die entsprechende 16-Bit-ganzzahl ohne Vorzeichen um.
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
Parameter
- value
- Decimal
Die zu konvertierende Dezimalzahl.
Gibt zurück
Eine 16-Bit-ganzzahl ohne Vorzeichen, die dem Wert von valueentspricht.
- Attribute
Ausnahmen
value ist größer als UInt16.MaxValue oder kleiner als UInt16.MinValue.
Beispiele
Im folgenden Beispiel wird die ToUInt16 Methode zum Konvertieren von Dezimalzahlen in UInt16 Werte verwendet.
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
Hinweise
Der Rückgabewert ist der integrale Teil des Dezimalwerts; Dezimalstellen werden abgeschnitten.
Sie können einen Decimal Wert auch mithilfe des Explicit Zuordnungsoperators in eine 16-Bit-ganzzahl ohne Vorzeichen konvertieren. Da der Operator eine Schmalungskonvertierung ausführt, müssen Sie einen Umwandlungsoperator in C# oder eine Konvertierungsfunktion in Visual Basic verwenden.