Decimal Constructor (Single)

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


Type: System.Single
The value to represent as a Decimal.


value is greater than MaxValue or less than MinValue.


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 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, float value, string valToStr)
      // Format and display the constructor.
      outputBlock.Text += String.Format("{0,-27}",
          String.Format("decimal( {0} )", valToStr));

         // 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( float ) " +
          "constructor \ngenerates the following output.\n") + "\n";
      outputBlock.Text += String.Format("{0,-27}{1,31}", "Constructor",
          "Value or Exception") + "\n";
      outputBlock.Text += String.Format("{0,-27}{1,31}", "-----------",
          "------------------") + "\n";

      // Construct decimal objects from float values.
      CreateDecimal(outputBlock, 1.2345E+5F, "1.2345E+5F");
      CreateDecimal(outputBlock, 1.234567E+15F, "1.234567E+15F");
      CreateDecimal(outputBlock, 1.23456789E+25F, "1.23456789E+25F");
      CreateDecimal(outputBlock, 1.23456789E+35F, "1.23456789E+35F");
      CreateDecimal(outputBlock, 1.2345E-5F, "1.2345E-5F");
      CreateDecimal(outputBlock, 1.234567E-15F, "1.234567E-15F");
      CreateDecimal(outputBlock, 1.23456789E-25F, "1.23456789E-25F");
      CreateDecimal(outputBlock, 1.23456789E-35F, "1.23456789E-35F");
      CreateDecimal(outputBlock, 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


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

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions