Decimal Explicit 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.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- value
- Type: System.Single
A single-precision floating-point number.
Return Value
Type: System.DecimalA Decimal that represents the converted single-precision floating point number.
| Exception | Condition |
|---|---|
| OverflowException | value is less than MinValue or greater than MaxValue. -or- 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 float to decimal. using System; class Example { const string formatter = "{0,16:E7}{1,33}"; // 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); } // Convert the float argument; catch exceptions that are thrown. public static void DecimalFromSingle(System.Windows.Controls.TextBlock outputBlock, float argument) { object decValue; // Convert the float argument to a decimal value. try { decValue = (decimal)argument; } catch (Exception ex) { decValue = GetExceptionType(ex); } outputBlock.Text += String.Format(formatter, argument, decValue) + "\n"; } public static void Demo(System.Windows.Controls.TextBlock outputBlock) { outputBlock.Text += "This example of the explicit conversion from float " + "to decimal \ngenerates the following output.\n" + "\n"; outputBlock.Text += String.Format(formatter, "float argument", "decimal value") + "\n"; outputBlock.Text += String.Format(formatter, "--------------", "-------------") + "\n"; // Convert float values and display the results. DecimalFromSingle(outputBlock, 1.2345E-30F); DecimalFromSingle(outputBlock, 1.2345E-26F); DecimalFromSingle(outputBlock, 1.23456E-22F); DecimalFromSingle(outputBlock, 1.23456E-12F); DecimalFromSingle(outputBlock, 1.234567F); DecimalFromSingle(outputBlock, 1.234567E+12F); DecimalFromSingle(outputBlock, 1.2345678E+28F); DecimalFromSingle(outputBlock, 1.2345678E+30F); } } /* This example of the explicit conversion from float to decimal generates the following output. float 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 */