Explicit Conversion (Single to Decimal)

Decimal Narrowing Conversion (Single to Decimal)

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

Converts a single-precision floating-point number to a Decimal.

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

Public Shared Narrowing Operator CType ( _
	value As Single _
) As Decimal


Type: System.Single
A single-precision floating-point number.

Return Value

Type: System.Decimal
A Decimal that represents the converted single-precision floating point number.


value is less than MinValue or greater than MaxValue.


value is Single.NaN, Single.PositiveInfinity, or Single.NegativeInfinity.

The following code example converts Single values to Decimal numbers using the Single to Decimal conversion. This conversion requires the op_Explicit operator in Visual Basic.

' Example of the explicit conversion from Single to Decimal.

Module Example

   Const formatter As String = "{0,16:E7}{1,33}"

   ' Get the exception type name; remove the namespace prefix.
   Function GetExceptionType(ByVal ex As Exception) As String

      Dim exceptionType As String = ex.GetType().ToString()
      Return exceptionType.Substring( _
          exceptionType.LastIndexOf("."c) + 1)
   End Function

   ' Convert the Single argument; catch exceptions that are thrown.
   Sub DecimalFromSingle(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal argument As Single)

      Dim decValue As Object

      ' Convert the Single argument to a Decimal value.
         decValue = Decimal.op_Explicit(argument)
      Catch ex As Exception
         decValue = GetExceptionType(ex)
      End Try

      ' Display the Decimal.
      outputBlock.Text &= String.Format(formatter, argument, decValue) & vbCrLf
   End Sub

   Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)

      outputBlock.Text &= _
          "This example of the explicit conversion from Single " & _
          "to Decimal " & vbCrLf & "generates the following " & _
          "output." & vbCrLf & vbCrLf
      outputBlock.Text &= String.Format(formatter, "Single argument", _
          "Decimal value") & vbCrLf
      outputBlock.Text &= String.Format(formatter, "---------------", _
          "-------------") & vbCrLf

      ' Convert Single values and display the results.
      DecimalFromSingle(outputBlock, 1.2345E-30)
      DecimalFromSingle(outputBlock, 1.2345E-26)
      DecimalFromSingle(outputBlock, 1.23456E-22)
      DecimalFromSingle(outputBlock, 0.00000000000123456)
      DecimalFromSingle(outputBlock, 1.234567)
      DecimalFromSingle(outputBlock, 1234567000000.0)
      DecimalFromSingle(outputBlock, 1.2345678E+28)
      DecimalFromSingle(outputBlock, 1.2345678E+30)
   End Sub
End Module

' This example of the explicit conversion from Single to Decimal
' generates the following output.
'  Single argument                    Decimal value
'  ---------------                    -------------
'   1.2345000E-030                                0
'   1.2345000E-026   0.0000000000000000000000000123
'   1.2345600E-022    0.000000000000000000000123456
'   1.2345600E-012              0.00000000000123456
'   1.2345671E+000                         1.234567
'   1.2345670E+012                    1234567000000
'   1.2345678E+028    12345680000000000000000000000
'   1.2345678E+030                OverflowException

Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

© 2017 Microsoft