Decimal Constructor (Double)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Initializes a new instance of Decimal to the value of the specified double-precision floating-point number.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- value
- Type: System.Double
The value to represent as a Decimal.
| Exception | Condition |
|---|---|
| OverflowException | value is greater than MaxValue or less than MinValue. -or- value is Double.NaN, Double.PositiveInfinity, or Double.NegativeInfinity. |
The following code example creates several Decimal numbers using the constructor overload that initializes a Decimal structure with a Double value.
// Example of the decimal( double ) constructor. using System; class Example { // Get the exception type name; remove the namespace prefix. public static string GetExceptionType(Exception ex) { string exceptionType = ex.GetType().ToString(); return exceptionType.Substring( exceptionType.LastIndexOf('.') + 1); } // Create a decimal object and display its value. public static void CreateDecimal(System.Windows.Controls.TextBlock outputBlock, double value, string valToStr) { // Format and display the constructor. outputBlock.Text += String.Format("{0,-34}", String.Format("decimal( {0} )", valToStr)); try { // Construct the decimal value. decimal decimalNum = new decimal(value); // Display the value if it was created successfully. outputBlock.Text += String.Format("{0,31}", decimalNum) + "\n"; } catch (Exception ex) { // Display the exception type if an exception was thrown. outputBlock.Text += String.Format("{0,31}", GetExceptionType(ex)) + "\n"; } } public static void Demo(System.Windows.Controls.TextBlock outputBlock) { outputBlock.Text += String.Format("This example of the decimal( double ) " + "constructor \ngenerates the following output.\n") + "\n"; outputBlock.Text += String.Format("{0,-34}{1,31}", "Constructor", "Value or Exception") + "\n"; outputBlock.Text += String.Format("{0,-34}{1,31}", "-----------", "------------------") + "\n"; // Construct decimal objects from double values. CreateDecimal(outputBlock, 1.23456789E+5, "1.23456789E+5"); CreateDecimal(outputBlock, 1.234567890123E+15, "1.234567890123E+15"); CreateDecimal(outputBlock, 1.2345678901234567E+25, "1.2345678901234567E+25"); CreateDecimal(outputBlock, 1.2345678901234567E+35, "1.2345678901234567E+35"); CreateDecimal(outputBlock, 1.23456789E-5, "1.23456789E-5"); CreateDecimal(outputBlock, 1.234567890123E-15, "1.234567890123E-15"); CreateDecimal(outputBlock, 1.2345678901234567E-25, "1.2345678901234567E-25"); CreateDecimal(outputBlock, 1.2345678901234567E-35, "1.2345678901234567E-35"); CreateDecimal(outputBlock, 1.0 / 7.0, "1.0 / 7.0"); } } /* This example of the decimal( double ) constructor generates the following output. Constructor Value or Exception ----------- ------------------ decimal( 1.23456789E+5 ) 123456.789 decimal( 1.234567890123E+15 ) 1234567890123000 decimal( 1.2345678901234567E+25 ) 12345678901234600000000000 decimal( 1.2345678901234567E+35 ) OverflowException decimal( 1.23456789E-5 ) 0.0000123456789 decimal( 1.234567890123E-15 ) 0.000000000000001234567890123 decimal( 1.2345678901234567E-25 ) 0.0000000000000000000000001235 decimal( 1.2345678901234567E-35 ) 0 decimal( 1.0 / 7.0 ) 0.142857142857143 */