Decimal.ToInt64(Decimal) 메서드

정의

지정된 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

매개 변수

d
Decimal

변환할 10진수입니다.The decimal number to convert.

반환

d의 값에 해당하는 64비트의 부호 있는 정수입니다.A 64-bit signed integer equivalent to the value of d.

예외

dMinValue보다 작거나 MaxValue보다 큽니다.d is less than MinValue or greater than MaxValue.

예제

다음 예제에서는 합니다 ToInt64 10 진수 숫자를 변환 하는 방법 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

설명

반환 값은 10 진수 값의 정수 부분을 소수 자릿수는 잘립니다.The return value is the integral part of the decimal value; fractional digits are truncated.

변환할 수도 있습니다는 Decimal 값을 사용 하 여 64 비트 정수로 Explicit 대입 연산자입니다.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.

적용 대상

추가 정보