Decimal Constructor (Double)
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Initializes a new instance of Decimal to the value of the specified double-precision floating-point number.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
<SecuritySafeCriticalAttribute> _
Public Sub New ( _
value As Double _
)
[SecuritySafeCriticalAttribute]
public Decimal(
double value
)
Parameters
- value
Type: System.Double
The value to represent as a Decimal.
Exceptions
Exception | Condition |
---|---|
OverflowException | value is greater than MaxValue or less than MinValue. -or- value is Double.NaN, Double.PositiveInfinity, or Double.NegativeInfinity. |
Remarks
This constructor rounds value to 15 significant digits using rounding to nearest. This is done even if the number has more than 15 digits and the less significant digits are zero.
Examples
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.
Module Example
' Get the exception type name; remove the namespace prefix.
Function GetExceptionType(ByVal ex As Exception) As String
Dim exceptionType As String = ex.GetType().ToString()
Return exceptionType.Substring( _
exceptionType.LastIndexOf("."c) + 1)
End Function
' Create a Decimal object and display its value.
Sub CreateDecimal(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal value As Double, ByVal valToStr As String)
' Format and display the constructor.
outputBlock.Text &= String.Format("{0,-34}", _
String.Format("Decimal( {0} )", valToStr))
' Construct the Decimal value.
Try
Dim decimalNum As New Decimal(value)
' Display the value if it was created successfully.
outputBlock.Text &= String.Format("{0,31}", decimalNum) & vbCrLf
' Display the exception type if an exception was thrown.
Catch ex As Exception
outputBlock.Text &= String.Format("{0,31}", GetExceptionType(ex)) & vbCrLf
End Try
End Sub
Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
outputBlock.Text &= String.Format( _
"This example of the Decimal( Double ) constructor " & _
vbCrLf & "generates the following output." & vbCrLf) & vbCrLf
outputBlock.Text &= String.Format("{0,-34}{1,31}", "Constructor", _
"Value or Exception") & vbCrLf
outputBlock.Text &= String.Format("{0,-34}{1,31}", "-----------", _
"------------------") & vbCrLf
' Construct Decimal objects from Double values.
CreateDecimal(outputBlock, 123456.789, "1.23456789E+5")
CreateDecimal(outputBlock, 1.234567890123E+15, "1.234567890123E+15")
CreateDecimal(outputBlock, 1.2345678901234566E+25, _
"1.2345678901234567E+25")
CreateDecimal(outputBlock, 1.2345678901234566E+35, _
"1.2345678901234567E+35")
CreateDecimal(outputBlock, 0.0000123456789, "1.23456789E-5")
CreateDecimal(outputBlock, 0.000000000000001234567890123, "1.234567890123E-15")
CreateDecimal(outputBlock, 1.2345678901234566E-25, _
"1.2345678901234567E-25")
CreateDecimal(outputBlock, 1.2345678901234567E-35, _
"1.2345678901234567E-35")
CreateDecimal(outputBlock, 1.0 / 7.0, "1.0 / 7.0")
End Sub
End Module
' 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
// 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
*/
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.