Decimal.ToInt64(Decimal) Metoda

Definice

Převede hodnotu zadaného Decimal na ekvivalentní celé číslo se znaménkem 64.Converts the value of the specified Decimal to the equivalent 64-bit signed integer.

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.The decimal number to convert.

Návraty

64 celé číslo se znaménkem, které odpovídá hodnotě d.A 64-bit signed integer equivalent to the value of d.

Výjimky

d je menší než MinValue nebo větší než MaxValue.d is less than MinValue or greater than MaxValue.

Příklady

Následující příklad používá metodu ToInt64 pro převod desítkových čísel na hodnoty Int64.The following example uses the ToInt64 method to convert decimal numbers to Int64 values.

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
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.The return value is the integral part of the decimal value; fractional digits are truncated.

Můžete také převést Decimal hodnotu na celé číslo 64 pomocí operátoru přiřazení Explicit.You can also convert a Decimal value to a 64-bit integer by using the Explicit assignment operator. Vzhledem k tomu, že operátor provádí zužující převod, je nutné použít operátor přetypování C# v nebo funkci konverze v Visual Basic.Because the operator performs a narrowing conversion, you must use a casting operator in C# or a conversion function in Visual Basic.

Platí pro

Viz také