Decimal.ToUInt64(Decimal) Metoda

Definice

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Převede hodnotu zadaného Decimal na ekvivalentní unsigned integer bit 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);
public static ulong ToUInt64 (decimal d);
static member ToUInt64 : decimal -> uint64
Public Shared Function ToUInt64 (d As Decimal) As ULong

Parametry

d
Decimal

Desítkové číslo k převodu.The decimal number to convert.

Návraty

64 unsigned integer ekvivalent hodnoty d.A 64-bit unsigned integer equivalent to the value of d.

Atributy

Výjimky

d je záporná nebo větší než MaxValue.d is negative or greater than MaxValue.

Příklady

Následující příklad používá metodu ToUInt64 pro převod desítkových čísel na hodnoty 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

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.

Hodnotu Decimal lze také převést na 64-bit unsigned integer pomocí operátoru přiřazení Explicit.You can also convert a Decimal value to an 64-bit unsigned 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é