Decimal ImplicitWideningImplicitImplicit Conversion (UInt64 to Decimal)

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

Converts a 64-bit unsigned integer to a Decimal.

This API is not CLS-compliant.

Namespace: System
Assembly: mscorlib (in mscorlib.dll)

Syntax

Public Shared Widening Operator CType ( _
    value As ULong _
) As Decimal
public static implicit operator decimal (
    ulong value
)

Parameters

Return Value

Type: System..::.Decimal
A Decimal that represents the converted 64-bit unsigned integer.

Examples

The following code example converts UInt64 values to Decimal numbers using the UInt64 to Decimal conversion. This conversion is implicit in C#, but requires the op_Implicit operator in Visual Basic and C++. Implicit conversions to Decimal use other methods in these languages.

' Example of the op_Implicit conversion from UInt64 to Decimal.
Imports System.Globalization

Module Example

   Const formatter As String = _
       "{0,20}{1,21}{2,10:X8}{3,9:X8}{4,9:X8}{5,9:X8}"

   ' Convert the UInt64 argument and display the Decimal value.
   Sub DecimalFromUInt64(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal argument As UInt64)

      Dim decValue As Decimal
      Dim bits() As Integer

      ' The compiler invokes a constructor in Visual Basic 
      ' unless op_Implicit is explicitly called.
      decValue = Decimal.op_Implicit(argument)

      ' Display the Decimal and its binary representation.
      bits = Decimal.GetBits(decValue)
      outputBlock.Text &= String.Format(formatter, argument, decValue, _
          bits(3), bits(2), bits(1), bits(0)) & vbCrLf
   End Sub

   Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)

      outputBlock.Text &= String.Format( _
          "This example of the op_Implicit conversion from " & _
          "UInt64 to Decimal generates the " & vbCrLf & _
          "following output. It displays the Decimal value " & _
          "and its binary representation." & vbCrLf) & vbCrLf
      outputBlock.Text &= String.Format(formatter, "UInt64 argument", _
          "Decimal value", "bits(3)", "bits(2)", _
          "bits(1)", "bits(0)") & vbCrLf
      outputBlock.Text &= String.Format(formatter, "---------------", _
          "-------------", "-------", "-------", _
          "-------", "-------") & vbCrLf

      ' Convert UInt64 values and display the results.
      DecimalFromUInt64(outputBlock, UInt64.Parse("0"))
      DecimalFromUInt64(outputBlock, UInt64.Parse("18446744073709551615"))
      DecimalFromUInt64(outputBlock, UInt64.Parse("FFFFFFFFFFFF", _
          NumberStyles.HexNumber))
      DecimalFromUInt64(outputBlock, UInt64.Parse("123456789123456789"))
      DecimalFromUInt64(outputBlock, UInt64.Parse("1000000000000000"))
   End Sub
End Module

' This example of the op_Implicit conversion from UInt64 to Decimal generates the
' following output. It displays the Decimal value and its binary representation.
'
'      UInt64 argument        Decimal value   bits(3)  bits(2)  bits(1)  bits(0)
'      ---------------        -------------   -------  -------  -------  -------
'                    0                    0  00000000 00000000 00000000 00000000
' 18446744073709551615 18446744073709551615  00000000 00000000 FFFFFFFF FFFFFFFF
'      281474976710655      281474976710655  00000000 00000000 0000FFFF FFFFFFFF
'   123456789123456789   123456789123456789  00000000 00000000 01B69B4B ACD05F15
'     1000000000000000     1000000000000000  00000000 00000000 00038D7E A4C68000
// Example of the implicit conversion from ulong to decimal.
using System;

class Example
{
   const string formatter =
       "{0,20}{1,21}{2,10:X8}{3,9:X8}{4,9:X8}{5,9:X8}";

   // Convert the ulong argument and display the decimal value.
   public static void DecimalFromUInt64(System.Windows.Controls.TextBlock outputBlock, ulong argument)
   {
      decimal decValue;
      int[] bits;

      // Display the decimal and its binary representation.
      decValue = argument;
      bits = decimal.GetBits(decValue);

      outputBlock.Text += String.Format(formatter, argument, decValue,
          bits[3], bits[2], bits[1], bits[0]) + "\n";
   }

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      outputBlock.Text += String.Format(
          "This example of the implicit conversion from ulong " +
          "to decimal generates the \nfollowing output. It " +
          "displays the decimal value and its binary " +
          "representation.\n") + "\n";
      outputBlock.Text += String.Format(formatter, "ulong argument",
          "decimal value", "bits[3]", "bits[2]",
          "bits[1]", "bits[0]") + "\n";
      outputBlock.Text += String.Format(formatter, "--------------",
          "-------------", "-------", "-------",
          "-------", "-------") + "\n";

      // Convert ulong values and display the results.
      DecimalFromUInt64(outputBlock, ulong.MinValue);
      DecimalFromUInt64(outputBlock, ulong.MaxValue);
      DecimalFromUInt64(outputBlock, 0xFFFFFFFFFFFF);
      DecimalFromUInt64(outputBlock, 123456789123456789);
      DecimalFromUInt64(outputBlock, 1000000000000000);
   }
}

/*
This example of the implicit conversion from ulong to decimal generates the
following output. It displays the decimal value and its binary representation.

      ulong argument        decimal value   bits[3]  bits[2]  bits[1]  bits[0]
      --------------        -------------   -------  -------  -------  -------
                   0                    0  00000000 00000000 00000000 00000000
18446744073709551615 18446744073709551615  00000000 00000000 FFFFFFFF FFFFFFFF
     281474976710655      281474976710655  00000000 00000000 0000FFFF FFFFFFFF
  123456789123456789   123456789123456789  00000000 00000000 01B69B4B ACD05F15
    1000000000000000     1000000000000000  00000000 00000000 00038D7E A4C68000
*/

Version Information

Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Platforms

Windows Phone

See Also

Reference

Decimal Structure

ImplicitWideningImplicitImplicit Overload

System Namespace

UInt64