Decimal.ToUInt64(Decimal) Decimal.ToUInt64(Decimal) Decimal.ToUInt64(Decimal) Decimal.ToUInt64(Decimal) Method

定義

重要

此 API 不符合 CLS 規範。

將指定的 Decimal 值轉換為對等的 64 位元不帶正負號整數。Converts the value of the specified Decimal to the equivalent 64-bit unsigned integer.

public:
 static System::UInt64 ToUInt64(System::Decimal d);
[System.CLSCompliant(false)]
public static ulong ToUInt64 (decimal d);
static member ToUInt64 : decimal -> uint64
Public Shared Function ToUInt64 (d As Decimal) As ULong

參數

d
Decimal Decimal Decimal Decimal

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

傳回

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

例外狀況

d 是負值或大於 MaxValued is negative or greater than MaxValue.

範例

下列範例會使用ToUInt64方法,將十進位數轉換成UInt64值。The following example uses the ToUInt64 method to convert decimal numbers to UInt64 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 {             
            ulong number = Decimal.ToUInt64(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
//     18446744073709551615.999 --> 18446744073709551615
//     OverflowException: 18446744073709551616
//     9223372036854775807.999 --> 9223372036854775807
//     9223372036854775808 --> 9223372036854775808
//     -0.999 --> 0
//     OverflowException: -1
//     OverflowException: -9223372036854775808.999
//     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 ULong = Decimal.ToUInt64(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
'     18446744073709551615.999 --> 18446744073709551615
'     OverflowException: 18446744073709551616
'     9223372036854775807.999 --> 9223372036854775807
'     9223372036854775808 --> 9223372036854775808
'     -0.999 --> 0
'     OverflowException: -1
'     OverflowException: -9223372036854775808.999
'     OverflowException: -9223372036854775809

備註

傳回值是十進位值的整數部分;小數數位會被截斷。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 an 64-bit unsigned 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.

適用於

另請參閱