Decimal Explicit Conversion (Decimal to Double)
Converts a Decimal to a double-precision floating-point number.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- value
- Type: System::Decimal
The value to convert.
Return Value
Type: System::DoubleA double-precision floating-point number that represents the converted Decimal.
This operation can produce round-off errors because a double-precision floating-point number has fewer significant digits than a Decimal.
This operator supports the explicit conversion of a Decimal to a Double. The syntax for such explicit conversions is language-dependent, and individual language compilers can provide different implementations and return different results. The example illustrates the different return values when you explicitly convert a Decimal value to a Double value by using C# and Visual Basic. To perform a conversion that is independent of language, you can call the ToDouble or the Convert::ToDouble(Decimal) method.
The following code example converts Decimal numbers to Double values using the explicit Decimal to Double conversion.
// Example of the explicit conversions from Decimal to float and // Decimal to double. using namespace System; #define formatter "{0,30}{1,17}{2,23}" // Convert the Decimal argument; no exceptions are thrown. void DecimalToSgl_Dbl( Decimal argument ) { Object^ SingleValue; Object^ DoubleValue; // Convert the argument to a float value. SingleValue = (float)argument; // Convert the argument to a double value. DoubleValue = (double)argument; Console::WriteLine( formatter, argument, SingleValue, DoubleValue ); } int main() { Console::WriteLine( "This example of the explicit conversions from Decimal to " "float \nand Decimal to double generates the " "following output. It \ndisplays several converted Decimal " "values.\n" ); Console::WriteLine( formatter, "Decimal argument", "float", "double" ); Console::WriteLine( formatter, "----------------", "-----", "------" ); // Convert Decimal values and display the results. DecimalToSgl_Dbl( Decimal::Parse( "0.0000000000000000000000000001" ) ); DecimalToSgl_Dbl( Decimal::Parse( "0.0000000000123456789123456789" ) ); DecimalToSgl_Dbl( Decimal::Parse( "123" ) ); DecimalToSgl_Dbl( Decimal(123000000,0,0,false,6) ); DecimalToSgl_Dbl( Decimal::Parse( "123456789.123456789" ) ); DecimalToSgl_Dbl( Decimal::Parse( "123456789123456789123456789" ) ); DecimalToSgl_Dbl( Decimal::MinValue ); DecimalToSgl_Dbl( Decimal::MaxValue ); } /* This example of the explicit conversions from Decimal to float and Decimal to double 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 */
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.