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.

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

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

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0