Export (0) Print
Expand All

Decimal Constructor (Double)

Initializes a new instance of Decimal to the value of the specified double-precision floating-point number.

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

'Declaration
Public Sub New ( _
	value As Double _
)

Parameters

value
Type: System.Double

The value to represent as a Decimal.

ExceptionCondition
OverflowException

value is greater than MaxValue or less than MinValue.

-or-

value is Double.NaN, Double.PositiveInfinity, or Double.NegativeInfinity.

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.

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. 
Imports System
Imports Microsoft.VisualBasic

Module DecimalCtorDoDemo

    ' Get the exception type name; remove the namespace prefix. 
    Function GetExceptionType( 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( value As Double, valToStr As String )

        ' Format and display the constructor.
        Console.Write( "{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.
            Console.WriteLine( "{0,31}", decimalNum )

        ' Display the exception type if an exception was thrown. 
        Catch ex As Exception
            Console.WriteLine( "{0,31}", GetExceptionType( ex ) )
        End Try 
    End Sub 

    Sub Main( )

        Console.WriteLine( _
            "This example of the Decimal( Double ) constructor " & _
            vbCrLf & "generates the following output." & vbCrLf )
        Console.WriteLine( "{0,-34}{1,31}", "Constructor", _
            "Value or Exception" )
        Console.WriteLine( "{0,-34}{1,31}", "-----------", _
            "------------------" )

        ' Construct Decimal objects from Double values.
        CreateDecimal( 1.23456789E+5, "1.23456789E+5" )                
        CreateDecimal( 1.234567890123E+15, "1.234567890123E+15" )                
        CreateDecimal( 1.2345678901234567E+25, _
            "1.2345678901234567E+25" )
        CreateDecimal( 1.2345678901234567E+35, _
            "1.2345678901234567E+35" )
        CreateDecimal( 1.23456789E-5, "1.23456789E-5" )                
        CreateDecimal( 1.234567890123E-15, "1.234567890123E-15" )      
        CreateDecimal( 1.2345678901234567E-25, _
            "1.2345678901234567E-25" ) 
        CreateDecimal( 1.2345678901234567E-35, _
            "1.2345678901234567E-35" ) 
        CreateDecimal( 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

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft