This documentation is archived and is not being maintained.

Convert.ToDecimal Method (Single)

Converts the value of the specified single-precision floating-point number to the equivalent decimal number.

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

public static decimal ToDecimal(
	float value


Type: System.Single
The single-precision floating-point number to convert.

Return Value

Type: System.Decimal
A decimal number that is equivalent to value.


value is greater than Decimal.MaxValue or less than Decimal.MinValue.

The Decimal value returned by this method contains a maximum of seven significant digits. If the value parameter contains more than seven significant digits, it is rounded using rounding to nearest. The following example illustrates how the ToDecimal(Single) method uses rounding to nearest to return a Decimal value with seven significant digits.

Console.WriteLine(Convert.ToDecimal(1234567500.12F));  // Displays 1234568000
Console.WriteLine(Convert.ToDecimal(1234568500.12F));  // Displays 1234568000

Console.WriteLine(Convert.ToDecimal(10.980365F));      // Displays 10.98036 
Console.WriteLine(Convert.ToDecimal(10.980355F));      // Displays 10.98036

The following example tries to convert each element in an array of Single values to a Decimal value.

float[] numbers = { Single.MinValue, -3e10f, -1093.54f, 0f, 1e-03f,
                    1034.23f, Single.MaxValue };
decimal result;

foreach (float number in numbers)
   try {
      result = Convert.ToDecimal(number);
      Console.WriteLine("Converted the Single value {0} to {1}.", number, result);
   catch (OverflowException) {
      Console.WriteLine("{0} is out of range of the Decimal type.", number);
// The example displays the following output:
//       -3.402823E+38 is out of range of the Decimal type.
//       Converted the Single value -3E+10 to -30000000000.
//       Converted the Single value -1093.54 to -1093.54.
//       Converted the Single value 0 to 0.
//       Converted the Single value 0.001 to 0.001.
//       Converted the Single value 1034.23 to 1034.23.
//       3.402823E+38 is out of range of the Decimal type.

.NET Framework

Supported in: 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

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

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