Export (0) Print
Expand All

Decimal.Decimal(Single) Constructor

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

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

public Decimal (
	float value
)
public Decimal (
	float value
)
public function Decimal (
	value : float
)
Not applicable.

Parameters

value

The value to represent as a Decimal.

Exception typeCondition

OverflowException

value is greater than MaxValue or less than MinValue.

-or-

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

This constructor rounds value to 7 significant digits using rounding to nearest. This is done even if the number has more than 7 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 Single value.

// Example of the decimal( float ) constructor.
using System;

class DecimalCtorSDemo
{
    // 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( float value, string valToStr )
    {
        // Format and display the constructor.
        Console.Write( "{0,-27}", 
            String.Format( "decimal( {0} )", valToStr ) );

        try
        {
            // Construct the decimal value.
            decimal decimalNum = new decimal( value );

            // Display the value if it was created successfully.
            Console.WriteLine( "{0,31}", decimalNum );
        }
        catch( Exception ex )
        {
            // Display the exception type if an exception was thrown.
            Console.WriteLine( "{0,31}", GetExceptionType( ex ) );
        }
    }
    
    public static void Main( )
    {

        Console.WriteLine( "This example of the decimal( float ) " +
            "constructor \ngenerates the following output.\n" );
        Console.WriteLine( "{0,-27}{1,31}", "Constructor", 
            "Value or Exception" );
        Console.WriteLine( "{0,-27}{1,31}", "-----------", 
            "------------------" );

        // Construct decimal objects from float values.
        CreateDecimal( 1.2345E+5F, "1.2345E+5F" );
        CreateDecimal( 1.234567E+15F, "1.234567E+15F" );
        CreateDecimal( 1.23456789E+25F, "1.23456789E+25F" );
        CreateDecimal( 1.23456789E+35F, "1.23456789E+35F" );
        CreateDecimal( 1.2345E-5F, "1.2345E-5F" );
        CreateDecimal( 1.234567E-15F, "1.234567E-15F" );
        CreateDecimal( 1.23456789E-25F, "1.23456789E-25F" );
        CreateDecimal( 1.23456789E-35F, "1.23456789E-35F" );
        CreateDecimal( 1.0F / 7.0F, "1.0F / 7.0F" );
    }
}

/*
This example of the decimal( float ) constructor
generates the following output.

Constructor                             Value or Exception
-----------                             ------------------
decimal( 1.2345E+5F )                               123450
decimal( 1.234567E+15F )                  1234567000000000
decimal( 1.23456789E+25F )      12345680000000000000000000
decimal( 1.23456789E+35F )               OverflowException
decimal( 1.2345E-5F )                          0.000012345
decimal( 1.234567E-15F )           0.000000000000001234567
decimal( 1.23456789E-25F )  0.0000000000000000000000001235
decimal( 1.23456789E-35F )                               0
decimal( 1.0F / 7.0F )                           0.1428571
*/

// Example of the decimal( float ) constructor.
import System.* ;

class DecimalCtorSDemo
{
       // Get the exception type name; remove the namespace prefix.
    public static String GetExceptionType(System.Exception ex)
    {
        String exceptionType = ex.GetType().ToString();
        return exceptionType.Substring((exceptionType.LastIndexOf('.') + 1));
    } //GetExceptionType

    // Create a decimal object and display its value.
    public static void CreateDecimal(float value,String valToStr)
    {
        // Format and display the constructor.
        Console.Write("{0,-27}", String.Format("decimal( {0} )", valToStr));
        
        try {
            // Construct the decimal value.
            System.Decimal decimalNum =  new System.Decimal(value);
            
            // Display the value if it was created successfully.
            Console.WriteLine("{0,31}", decimalNum);
        }
        catch(System.Exception  ex) {        
            // Display the exception type if an exception was thrown.
            Console.WriteLine("{0,31}", GetExceptionType(ex));
        }
    } //CreateDecimal

    public static void main(String[] args)
    {
        Console.WriteLine(("This example of the decimal( float ) " 
            + "constructor \ngenerates the following output.\n"));
        Console.WriteLine("{0,-27}{1,31}", "Constructor", "Value or Exception");
        Console.WriteLine("{0,-27}{1,31}", "-----------", "------------------");
        
        // Construct decimal objects from float values.
        CreateDecimal(123450, "1.2345E+5F");
        CreateDecimal(System.Convert.ToSingle(1.234567E+15), "1.234567E+15F");
        CreateDecimal(System.Convert.ToSingle(1.234568E+25), "1.23456789E+25F");
        CreateDecimal(System.Convert.ToSingle(1.234568E+35), "1.23456789E+35F");
        CreateDecimal(System.Convert.ToSingle(1.2345E-05), "1.2345E-5F");
        CreateDecimal(System.Convert.ToSingle(1.234567E-15), "1.234567E-15F");
        CreateDecimal(System.Convert.ToSingle(1.234568E-25), "1.23456789E-25F");
        CreateDecimal(System.Convert.ToSingle(1.234568E-35), "1.23456789E-35F");
        CreateDecimal(System.Convert.ToSingle(1) /System.Convert.ToSingle(7), 
            "1.0F / 7.0F");
    } //main
} //DecimalCtorSDemo

/*
This example of the decimal( float ) constructor
generates the following output.

Constructor                             Value or Exception
-----------                             ------------------
decimal( 1.2345E+5F )                               123450
decimal( 1.234567E+15F )                  1234567000000000
decimal( 1.23456789E+25F )      12345680000000000000000000
decimal( 1.23456789E+35F )               OverflowException
decimal( 1.2345E-5F )                          0.000012345
decimal( 1.234567E-15F )           0.000000000000001234567
decimal( 1.23456789E-25F )  0.0000000000000000000000001235
decimal( 1.23456789E-35F )                               0
decimal( 1.0F / 7.0F )                           0.1428571
*/

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0

XNA Framework

Supported in: 1.0

Community Additions

ADD
Show:
© 2014 Microsoft