Export (0) Print
Expand All

Convert.ToDecimal Method (Single)

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

Namespace:  System
Assemblies:   System.Runtime.Extensions (in System.Runtime.Extensions.dll)
  mscorlib (in mscorlib.dll)

Public Shared Function ToDecimal ( _
	value As Single _
) As Decimal


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.

Dim numbers() As Single = { Single.MinValue, -3e10, -1093.54, 0, 1e-03, _
                            1034.23, Single.MaxValue }
Dim result As Decimal 

For Each number As Single In numbers
      result = Convert.ToDecimal(number)
      Console.WriteLine("Converted the Single value {0} to {1}.", number, result)
   Catch e As OverflowException
      Console.WriteLine("{0} is out of range of the Decimal type.", number)
   End Try 
' 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.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0

Portable Class Library

Supported in: Portable Class Library

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8
© 2015 Microsoft