Decimal.ToInt64(Decimal) Method

Definition

將指定的 Decimal 值轉換為對等的 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

Parameters

d
Decimal

要轉換的十進位數字。The decimal number to convert.

Returns

Int64

64 位元帶正負號的整數,等於 d 的值。A 64-bit signed integer equivalent to the value of d.

Exceptions

d 小於 MinValue 或大於 MaxValued is less than MinValue or greater than MaxValue.

Examples

下列範例會使用 ToInt64 方法,將十進位數轉換成 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

Remarks

傳回值是十進位值的整數部分;小數數位會被截斷。The return value is the integral part of the decimal value; fractional digits are truncated.

您也可以使用 Explicit 指派運算子,將 Decimal 值轉換為64位的整數。You can also convert a Decimal value to a 64-bit integer by using the Explicit assignment operator. 因為運算子會執行縮小轉換,所以您必須在中C#使用轉型運算子或 Visual Basic 中的轉換函數。Because the operator performs a narrowing conversion, you must use a casting operator in C# or a conversion function in Visual Basic.

Applies to

See also