Decimal.ToInt32(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 z podpisem 32-bitowym.
public:
static int ToInt32(System::Decimal d);
public static int ToInt32 (decimal d);
static member ToInt32 : decimal -> int
Public Shared Function ToInt32 (d As Decimal) As Integer
Parametry
- d
- Decimal
Liczba dziesiętna, która ma zostać przekształcona.
Zwraca
32-bitowa liczba całkowita z podpisem odpowiada wartości d
.
Wyjątki
d
wartość jest mniejsza niż Int32.MinValue lub większa niż Int32.MaxValue.
Przykłady
W poniższym przykładzie użyto ToInt32 metody , aby przekonwertować liczby dziesiętne na Int32 wartości.
using System;
class Example
{
public static void Main( )
{
decimal[] values = { 123m, new decimal(123000, 0, 0, false, 3),
123.999m, 4294967295.999m, 4294967296m,
4294967296m, 2147483647.999m, 2147483648m,
-0.999m, -1m, -2147483648.999m, -2147483649m };
foreach (var value in values) {
try {
int number = Decimal.ToInt32(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: 4294967295.999
// OverflowException: 4294967296
// OverflowException: 4294967296
// 2147483647.999 --> 2147483647
// OverflowException: 2147483648
// -0.999 --> 0
// -1 --> -1
// -2147483648.999 --> -2147483648
// OverflowException: -2147483649
open System
let values =
[ 123m; Decimal(123000, 0, 0, false, 3uy)
123.999m; 4294967295.999m; 4294967296m
4294967296m; 2147483647.999m; 2147483648m
-0.999m; -1m; -2147483648.999m; -2147483649m ]
for value in values do
try
let number = Decimal.ToInt32 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: 4294967295.999
// OverflowException: 4294967296
// OverflowException: 4294967296
// 2147483647.999 --> 2147483647
// OverflowException: 2147483648
// -0.999 --> 0
// -1 --> -1
// -2147483648.999 --> -2147483648
// OverflowException: -2147483649
Module Example
Public Sub Main()
Dim values() As Decimal = { 123d, New Decimal(123000, 0, 0, false, 3),
123.999d, 4294967295.999d, 4294967296d,
4294967296d, 2147483647.999d, 2147483648d,
-0.999d, -1d, -2147483648.999d, -2147483649d }
For Each value In values
Try
Dim number As Integer = Decimal.ToInt32(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: 4294967295.999
' OverflowException: 4294967296
' OverflowException: 4294967296
' 2147483647.999 --> 2147483647
' OverflowException: 2147483648
' -0.999 --> 0
' -1 --> -1
' -2147483648.999 --> -2147483648
' OverflowException: -2147483649
'
Uwagi
Wartość zwracana jest integralną częścią wartości dziesiętnej; cyfry ułamkowe są obcinane.
Możesz również przekonwertować Decimal wartość na 32-bitową liczbę całkowitą przy użyciu Explicit operatora przypisania. Ponieważ operator wykonuje konwersję zawężającą, musisz użyć operatora rzutowania w języku C# lub funkcji konwersji w Visual Basic.