Decimal.ToDouble Method
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Converts the value of the specified Decimal to the equivalent double-precision floating-point number.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
<SecuritySafeCriticalAttribute> _
Public Shared Function ToDouble ( _
d As Decimal _
) As Double
[SecuritySafeCriticalAttribute]
public static double ToDouble(
decimal d
)
Parameters
- d
Type: System.Decimal
The Decimal value to convert.
Return Value
Type: System.Double
A double-precision floating-point number equivalent to d.
Remarks
This operation can produce round-off errors because a double-precision floating-point number has fewer significant digits than a Decimal.
Examples
The following code example converts Decimal numbers to Double values using ToDouble method.
' Example of the Decimal.ToSingle and Decimal.ToDouble methods.
Module Example
Dim formatter As String = "{0,30}{1,17}{2,23}"
' Convert the Decimal argument; no exceptions are thrown.
Sub DecimalToSgl_Dbl(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal argument As Decimal)
Dim SingleValue As Object
Dim DoubleValue As Object
' Convert the argument to a Single value.
SingleValue = Decimal.ToSingle(argument)
' Convert the argument to a Double value.
DoubleValue = Decimal.ToDouble(argument)
outputBlock.Text &= String.Format(formatter, argument, _
SingleValue, DoubleValue) & vbCrLf
End Sub
Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
outputBlock.Text &= String.Format("This example of the " & vbCrLf & _
" Decimal.ToSingle( Decimal ) and " & vbCrLf & _
" Decimal.ToDouble( Decimal ) " & vbCrLf & "methods " & _
"generates the following output. It " & vbCrLf & _
"displays several converted Decimal values." & vbCrLf) & vbCrLf
outputBlock.Text &= String.Format(formatter, "Decimal argument", _
"Single", "Double") & vbCrLf
outputBlock.Text &= String.Format(formatter, "----------------", _
"------", "------") & vbCrLf
' Convert Decimal values and display the results.
DecimalToSgl_Dbl(outputBlock, 0.0000000000000000000000000001D)
DecimalToSgl_Dbl(outputBlock, 0.0000000000112233445566778899D)
DecimalToSgl_Dbl(outputBlock, 123D)
DecimalToSgl_Dbl(outputBlock, New Decimal(123000000, 0, 0, False, 6))
DecimalToSgl_Dbl(outputBlock, 123456789.123456789D)
DecimalToSgl_Dbl(outputBlock, 123456789123456789123456789D)
DecimalToSgl_Dbl(outputBlock, Decimal.MinValue)
DecimalToSgl_Dbl(outputBlock, Decimal.MaxValue)
End Sub
End Module
' This example of the
' Decimal.ToSingle( Decimal ) and
' Decimal.ToDouble( Decimal )
' methods generates the following output. It
' displays several converted Decimal values.
'
' Decimal argument Single Double
' ---------------- ------ ------
' 0.0000000000000000000000000001 1E-28 1E-28
' 0.0000000000112233445566778899 1.122334E-11 1.12233445566779E-11
' 123 123 123
' 123.000000 123 123
' 123456789.123456789 1.234568E+08 123456789.123457
' 123456789123456789123456789 1.234568E+26 1.23456789123457E+26
' -79228162514264337593543950335 -7.922816E+28 -7.92281625142643E+28
' 79228162514264337593543950335 7.922816E+28 7.92281625142643E+28
// Example of the decimal.ToSingle and decimal.ToDouble methods.
using System;
class Example
{
static string formatter = "{0,30}{1,17}{2,23}";
// Convert the decimal argument; no exceptions are thrown.
public static void DecimalToSgl_Dbl(System.Windows.Controls.TextBlock outputBlock, decimal argument)
{
object SingleValue;
object DoubleValue;
// Convert the argument to a float value.
SingleValue = decimal.ToSingle(argument);
// Convert the argument to a double value.
DoubleValue = decimal.ToDouble(argument);
outputBlock.Text += String.Format(formatter, argument,
SingleValue, DoubleValue) + "\n";
}
public static void Demo(System.Windows.Controls.TextBlock outputBlock)
{
outputBlock.Text += String.Format("This example of the \n" +
" decimal.ToSingle( decimal ) and \n" +
" decimal.ToDouble( decimal ) \nmethods " +
"generates the following output. It \ndisplays " +
"several converted decimal values.\n") + "\n";
outputBlock.Text += String.Format(formatter, "decimal argument",
"float", "double") + "\n";
outputBlock.Text += String.Format(formatter, "----------------",
"-----", "------") + "\n";
// Convert decimal values and display the results.
DecimalToSgl_Dbl(outputBlock, 0.0000000000000000000000000001M);
DecimalToSgl_Dbl(outputBlock, 0.0000000000123456789123456789M);
DecimalToSgl_Dbl(outputBlock, 123M);
DecimalToSgl_Dbl(outputBlock, new decimal(123000000, 0, 0, false, 6));
DecimalToSgl_Dbl(outputBlock, 123456789.123456789M);
DecimalToSgl_Dbl(outputBlock, 123456789123456789123456789M);
DecimalToSgl_Dbl(outputBlock, decimal.MinValue);
DecimalToSgl_Dbl(outputBlock, decimal.MaxValue);
}
}
/*
This example of the
decimal.ToSingle( decimal ) and
decimal.ToDouble( decimal )
methods generates the following output. It
displays several converted decimal values.
decimal argument float double
---------------- ----- ------
0.0000000000000000000000000001 1E-28 1E-28
0.0000000000123456789123456789 1.234568E-11 1.23456789123457E-11
123 123 123
123.000000 123 123
123456789.123456789 1.234568E+08 123456789.123457
123456789123456789123456789 1.234568E+26 1.23456789123457E+26
-79228162514264337593543950335 -7.922816E+28 -7.92281625142643E+28
79228162514264337593543950335 7.922816E+28 7.92281625142643E+28
*/
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Xbox 360, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.