Decimal.ToInt16(Decimal) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Konwertuje wartość określonej Decimal liczby całkowitej ze znakiem 16-bitowym.
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
Parametry
- value
- Decimal
Liczba dziesiętna, która ma zostać przekształcona.
Zwraca
16-bitowa liczba całkowita ze znakiem równoważna value
.
Wyjątki
value
wartość jest mniejsza niż Int16.MinValue lub większa niż Int16.MaxValue.
Przykłady
W poniższym przykładzie użyto ToInt16 metody , aby przekonwertować liczby dziesiętne na Int16 wartości.
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
Uwagi
Wartość można również przekonwertować Decimal na 16-bitową liczbę całkowitą przy użyciu Explicit operatora przypisania. Ponieważ operator wykonuje konwersję zawężającą, należy użyć operatora rzutowania w języku C# lub funkcji konwersji w języku Visual Basic.