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 Shared Function ToDecimal (
	value As Single
) As Decimal

Parameters

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.

Exception Condition
OverflowException

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
   Try
      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
Next                                  
' 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.

Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top
Show: