Decimal.ToInt64(Decimal) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Převede hodnotu zadaného Decimal na ekvivalentní celé číslo se 64bitovým signedm.. .
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
Parametry
- d
- Decimal
Desítkové číslo k převodu.
Návraty
64bitové celé číslo se signoumm hodnotou, které odpovídá hodnotě d
.
Výjimky
d
je menší než Int64.MinValue nebo větší než Int64.MaxValue.
Příklady
Následující příklad používá metodu k převodu ToInt64 desetinných čísel na Int64 hodnoty.
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
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 64bitové celé číslo 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.