Decimal Constructor (Single)

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

Initializes a new instance of Decimal to the value of the specified single-precision floating-point number.

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

Syntax

Public Sub New ( _
    value As Single _
)
public Decimal(
    float value
)

Parameters

Exceptions

Exception Condition
OverflowException

value is greater than MaxValue or less than MinValue.

-or-

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

Remarks

This constructor rounds value to 7 significant digits using rounding to nearest. This is done even if the number has more than 7 digits and the less significant digits are zero.

Examples

The following code example creates several Decimal numbers using the constructor overload that initializes a Decimal structure with a Single value.

' Example of the Decimal( Single ) constructor.

Module Example

   ' 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

   ' Create a Decimal object and display its value.
   Sub CreateDecimal(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal value As Single, ByVal valToStr As String)

      ' Format and display the constructor.
      outputBlock.Text &= String.Format("{0,-27}", _
          String.Format("Decimal( {0} )", valToStr))

      ' Construct the Decimal value.
      Try
         Dim decimalNum As New Decimal(value)

         ' Display the value if it was created successfully.
         outputBlock.Text &= String.Format("{0,31}", decimalNum) & vbCrLf

         ' Display the exception type if an exception was thrown.
      Catch ex As Exception
         outputBlock.Text &= String.Format("{0,31}", GetExceptionType(ex)) & vbCrLf
      End Try
   End Sub

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

      outputBlock.Text &= String.Format( _
          "This example of the Decimal( Single ) constructor " & _
          vbCrLf & "generates the following output." & vbCrLf) & vbCrLf
      outputBlock.Text &= String.Format("{0,-27}{1,31}", "Constructor", "Value or Exception") & vbCrLf
      outputBlock.Text &= String.Format("{0,-27}{1,31}", "-----------", "------------------") & vbCrLf

      ' Construct Decimal objects from Single values.
      CreateDecimal(outputBlock, 123450.0, "1.2345E+5")
      CreateDecimal(outputBlock, 1.234567E+15, "1.234567E+15")
      CreateDecimal(outputBlock, 1.23456789E+25, "1.23456789E+25")
      CreateDecimal(outputBlock, 1.23456789E+35, "1.23456789E+35")
      CreateDecimal(outputBlock, 0.000012345, "1.2345E-5")
      CreateDecimal(outputBlock, 0.000000000000001234567, "1.234567E-15")
      CreateDecimal(outputBlock, 1.23456789E-25, "1.23456789E-25")
      CreateDecimal(outputBlock, 1.23456789E-35, "1.23456789E-35")
      CreateDecimal(outputBlock, 1.0 / 7.0, "1.0 / 7.0")
   End Sub
End Module

' This example of the Decimal( Single ) constructor
' generates the following output.
' 
' Constructor                             Value or Exception
' -----------                             ------------------
' Decimal( 1.2345E+5 )                                123450
' Decimal( 1.234567E+15 )                   1234567000000000
' Decimal( 1.23456789E+25 )       12345680000000000000000000
' Decimal( 1.23456789E+35 )                OverflowException
' Decimal( 1.2345E-5 )                           0.000012345
' Decimal( 1.234567E-15 )            0.000000000000001234567
' Decimal( 1.23456789E-25 )   0.0000000000000000000000001235
' Decimal( 1.23456789E-35 )                                0
' Decimal( 1.0 / 7.0 )                             0.1428571
// Example of the decimal( float ) constructor.
using System;

class Example
{
   // Get the exception type name; remove the namespace prefix.
   public static string GetExceptionType(Exception ex)
   {
      string exceptionType = ex.GetType().ToString();
      return exceptionType.Substring(
          exceptionType.LastIndexOf('.') + 1);
   }

   // Create a decimal object and display its value.
   public static void CreateDecimal(System.Windows.Controls.TextBlock outputBlock, float value, string valToStr)
   {
      // Format and display the constructor.
      outputBlock.Text += String.Format("{0,-27}",
          String.Format("decimal( {0} )", valToStr));

      try
      {
         // Construct the decimal value.
         decimal decimalNum = new decimal(value);

         // Display the value if it was created successfully.
         outputBlock.Text += String.Format("{0,31}", decimalNum) + "\n";
      }
      catch (Exception ex)
      {
         // Display the exception type if an exception was thrown.
         outputBlock.Text += String.Format("{0,31}", GetExceptionType(ex)) + "\n";
      }
   }

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {

      outputBlock.Text += String.Format("This example of the decimal( float ) " +
          "constructor \ngenerates the following output.\n") + "\n";
      outputBlock.Text += String.Format("{0,-27}{1,31}", "Constructor",
          "Value or Exception") + "\n";
      outputBlock.Text += String.Format("{0,-27}{1,31}", "-----------",
          "------------------") + "\n";

      // Construct decimal objects from float values.
      CreateDecimal(outputBlock, 1.2345E+5F, "1.2345E+5F");
      CreateDecimal(outputBlock, 1.234567E+15F, "1.234567E+15F");
      CreateDecimal(outputBlock, 1.23456789E+25F, "1.23456789E+25F");
      CreateDecimal(outputBlock, 1.23456789E+35F, "1.23456789E+35F");
      CreateDecimal(outputBlock, 1.2345E-5F, "1.2345E-5F");
      CreateDecimal(outputBlock, 1.234567E-15F, "1.234567E-15F");
      CreateDecimal(outputBlock, 1.23456789E-25F, "1.23456789E-25F");
      CreateDecimal(outputBlock, 1.23456789E-35F, "1.23456789E-35F");
      CreateDecimal(outputBlock, 1.0F / 7.0F, "1.0F / 7.0F");
   }
}

/*
This example of the decimal( float ) constructor
generates the following output.

Constructor                             Value or Exception
-----------                             ------------------
decimal( 1.2345E+5F )                               123450
decimal( 1.234567E+15F )                  1234567000000000
decimal( 1.23456789E+25F )      12345680000000000000000000
decimal( 1.23456789E+35F )               OverflowException
decimal( 1.2345E-5F )                          0.000012345
decimal( 1.234567E-15F )           0.000000000000001234567
decimal( 1.23456789E-25F )  0.0000000000000000000000001235
decimal( 1.23456789E-35F )                               0
decimal( 1.0F / 7.0F )                           0.1428571
*/

Version Information

Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Platforms

Windows Phone

See Also

Reference

Decimal Structure

Decimal Overload

System Namespace