Decimal.ToInt64(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.
Konvertiert den Wert des angegebenen Decimal in die entsprechende 64-Bit-Ganzzahl mit Vorzeichen.
public:
static long ToInt64(System::Decimal d);
public static long ToInt64 (decimal d);
static member ToInt64 : decimal -> int64
Public Shared Function ToInt64 (d As Decimal) As Long
Parameter
- d
- Decimal
Die zu konvertierende Dezimalzahl.
Gibt zurück
Eine 64-Bit-Ganzzahl mit Vorzeichen, die dem Wert von d
entspricht.
Ausnahmen
d
ist kleiner als Int64.MinValue oder größer als Int64.MaxValue.
Beispiele
Im folgenden Beispiel wird die ToInt64 -Methode verwendet, um Dezimalzahlen in Werte zu Int64 konvertieren.
using System;
class Example
{
public static void Main( )
{
decimal[] values = { 123m, new Decimal(123000, 0, 0, false, 3),
123.999m, 18446744073709551615.999m,
18446744073709551616m, 9223372036854775807.999m,
9223372036854775808m, -0.999m, -1m,
-9223372036854775808.999m,
-9223372036854775809m };
foreach (var value in values) {
try {
long number = Decimal.ToInt64(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: 18446744073709551615.999
// OverflowException: 18446744073709551616
// 9223372036854775807.999 --> 9223372036854775807
// OverflowException: 9223372036854775808
// -0.999 --> 0
// -1 --> -1
// -9223372036854775808.999 --> -9223372036854775808
// OverflowException: -9223372036854775809
open System
let values =
[ 123m; Decimal(123000, 0, 0, false, 3uy)
123.999m; 18446744073709551615.999m
18446744073709551616m; 9223372036854775807.999m
9223372036854775808m; -0.999m; -1m
-9223372036854775808.999m
-9223372036854775809m ]
for value in values do
try
let number = Decimal.ToInt64 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: 18446744073709551615.999
// OverflowException: 18446744073709551616
// 9223372036854775807.999 --> 9223372036854775807
// OverflowException: 9223372036854775808
// -0.999 --> 0
// -1 --> -1
// -9223372036854775808.999 --> -9223372036854775808
// OverflowException: -9223372036854775809
Module Example
Public Sub Main()
Dim values() As Decimal = { 123d, New Decimal(123000, 0, 0, false, 3),
123.999d, 18446744073709551615.999d,
18446744073709551616d, 9223372036854775807.999d,
9223372036854775808d, -0.999d, -1d,
-9223372036854775808.999d,
-9223372036854775809d }
For Each value In values
Try
Dim number As Long = Decimal.ToInt64(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: 18446744073709551615.999
' OverflowException: 18446744073709551616
' 9223372036854775807.999 --> 9223372036854775807
' OverflowException: 9223372036854775808
' -0.999 --> 0
' -1 --> -1
' -9223372036854775808.999 --> -9223372036854775808
' OverflowException: -9223372036854775809
Hinweise
Der Rückgabewert ist der integrale Teil des Dezimalwerts. Bruchstellen werden abgeschnitten.
Sie können einen Decimal Wert auch mithilfe des Explicit Zuweisungsoperators in eine 64-Bit-Ganzzahl konvertieren. Da der Operator eine einschränkende Konvertierung ausführt, müssen Sie einen Umwandlungsoperator in C# oder eine Konvertierungsfunktion in Visual Basic verwenden.