Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

Decimal.ToSingle(Decimal) Method

Definition

Namespace:
System
Assemblies:
mscorlib.dll, System.Runtime.dll
Assemblies:
netstandard.dll, System.Runtime.dll
Assembly:
System.Runtime.dll
Assembly:
mscorlib.dll
Assembly:
netstandard.dll
Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

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

public:
 static float ToSingle(System::Decimal d);
public static float ToSingle(decimal d);
static member ToSingle : decimal -> single
Public Shared Function ToSingle (d As Decimal) As Single

Parameters

d
Decimal

The decimal number to convert.

Returns

A single-precision floating-point number equivalent to the value of d.

Examples

The following code example converts Decimal numbers to Single values using the ToSingle method.

// Example of the decimal.ToSingle and decimal.ToDouble methods.
using System;

class DecimalToSgl_DblDemo
{
 static string formatter = "{0,30}{1,17}{2,23}";

 // Convert the decimal argument; no exceptions are thrown.
 public static void DecimalToSgl_Dbl( decimal argument )
 {
 object SingleValue;
 object DoubleValue;

 // Convert the argument to a float value.
 SingleValue = decimal.ToSingle( argument );

 // Convert the argument to a double value.
 DoubleValue = decimal.ToDouble( argument );

 Console.WriteLine( formatter, argument,
 SingleValue, DoubleValue );
 }

 public static void Main( )
 {
 Console.WriteLine( "This example of the \n" +
 " decimal.ToSingle( decimal ) and \n" +
 " decimal.ToDouble( decimal ) \nmethods " +
 "generates the following output. It \ndisplays " +
 "several converted decimal values.\n" );
 Console.WriteLine( formatter, "decimal argument",
 "float", "double" );
 Console.WriteLine( formatter, "----------------",
 "-----", "------" );

 // Convert decimal values and display the results.
 DecimalToSgl_Dbl( 0.0000000000000000000000000001M );
 DecimalToSgl_Dbl( 0.0000000000123456789123456789M );
 DecimalToSgl_Dbl( 123M );
 DecimalToSgl_Dbl( new decimal( 123000000, 0, 0, false, 6 ) );
 DecimalToSgl_Dbl( 123456789.123456789M );
 DecimalToSgl_Dbl( 123456789123456789123456789M );
 DecimalToSgl_Dbl( decimal.MinValue );
 DecimalToSgl_Dbl( decimal.MaxValue );
 }
}

/*
This example of the
 decimal.ToSingle( decimal ) and
 decimal.ToDouble( decimal )
methods generates the following output. It
displays several converted decimal values.

 decimal argument float double
 ---------------- ----- ------
0.0000000000000000000000000001 1E-28 1E-28
0.0000000000123456789123456789 1.234568E-11 1.23456789123457E-11
 123 123 123
 123.000000 123 123
 123456789.123456789 1.234568E+08 123456789.123457
 123456789123456789123456789 1.234568E+26 1.23456789123457E+26
-79228162514264337593543950335 -7.922816E+28 -7.92281625142643E+28
 79228162514264337593543950335 7.922816E+28 7.92281625142643E+28
*/
// Example of the Decimal.ToSingle and Decimal.ToDouble methods.
open System

let formatter obj1 obj2 obj3 = printfn $"{obj1,30}{obj2,17}{obj3,23}"

// Convert the decimal argument no exceptions are thrown.
let decimalToSgl_Dbl argument =
 // Convert the argument to a float value.
 let singleValue = Decimal.ToSingle argument

 // Convert the argument to a double value.
 let doubleValue = Decimal.ToDouble argument

 formatter argument singleValue doubleValue

printfn
 """This example of the
 Decimal.ToSingle( decimal ) and
 Decimal.ToDouble( decimal )
methods generates the following output. It
displays several converted decimal values.
"""

formatter "decimal argument" "float" "double"
formatter "----------------" "-----" "------"

// Convert decimal values and display the results.
decimalToSgl_Dbl 0.0000000000000000000000000001M
decimalToSgl_Dbl 0.0000000000123456789123456789M
decimalToSgl_Dbl 123M
decimalToSgl_Dbl (Decimal(123000000, 0, 0, false, 6uy))
decimalToSgl_Dbl 123456789.123456789M
decimalToSgl_Dbl 123456789123456789123456789M
decimalToSgl_Dbl Decimal.MinValue
decimalToSgl_Dbl Decimal.MaxValue


// This example of the
// Decimal.ToSingle( decimal ) and
// Decimal.ToDouble( decimal )
// methods generates the following output. It
// displays several converted decimal values.
//
// decimal argument float double
// ---------------- ----- ------
// 0.0000000000000000000000000001 1E-28 1E-28
// 0.0000000000123456789123456789 1.234568E-11 1.23456789123457E-11
// 123 123 123
// 123.000000 123 123
// 123456789.123456789 1.234568E+08 123456789.123457
// 123456789123456789123456789 1.234568E+26 1.23456789123457E+26
// -79228162514264337593543950335 -7.922816E+28 -7.92281625142643E+28
// 79228162514264337593543950335 7.922816E+28 7.92281625142643E+28
' Example of the Decimal.ToSingle and Decimal.ToDouble methods.
Module DecimalToSgl_DblDemo

 Dim formatter As String = "{0,30}{1,17}{2,23}"

 ' Convert the Decimal argument; no exceptions are thrown.
 Sub DecimalToSgl_Dbl( argument As Decimal )

 Dim SingleValue As Object
 Dim DoubleValue As Object

 ' Convert the argument to a Single value.
 SingleValue = Decimal.ToSingle( argument )

 ' Convert the argument to a Double value.
 DoubleValue = Decimal.ToDouble( argument )

 Console.WriteLine( formatter, argument, _
 SingleValue, DoubleValue )
 End Sub

 Sub Main( )

 Console.WriteLine( "This example of the " & vbCrLf & _
 " Decimal.ToSingle( Decimal ) and " & vbCrLf & _
 " Decimal.ToDouble( Decimal ) " & vbCrLf & "methods " & _
 "generates the following output. It " & vbCrLf & _
 "displays several converted Decimal values." & vbCrLf )
 Console.WriteLine( formatter, "Decimal argument", _
 "Single", "Double" )
 Console.WriteLine( formatter, "----------------", _
 "------", "------" )

 ' Convert Decimal values and display the results.
 DecimalToSgl_Dbl( 0.0000000000000000000000000001D )
 DecimalToSgl_Dbl( 0.0000000000112233445566778899D )
 DecimalToSgl_Dbl( 123D )
 DecimalToSgl_Dbl( New Decimal( 123000000, 0, 0, False, 6 ) )
 DecimalToSgl_Dbl( 123456789.123456789D )
 DecimalToSgl_Dbl( 123456789123456789123456789D )
 DecimalToSgl_Dbl( Decimal.MinValue )
 DecimalToSgl_Dbl( Decimal.MaxValue )
 End Sub 
End Module 

' This example of the
' Decimal.ToSingle( Decimal ) and
' Decimal.ToDouble( Decimal )
' methods generates the following output. It
' displays several converted Decimal values.
' 
' Decimal argument Single Double
' ---------------- ------ ------
' 0.0000000000000000000000000001 1E-28 1E-28
' 0.0000000000112233445566778899 1.122334E-11 1.12233445566779E-11
' 123 123 123
' 123.000000 123 123
' 123456789.123456789 1.234568E+08 123456789.123457
' 123456789123456789123456789 1.234568E+26 1.23456789123457E+26
' -79228162514264337593543950335 -7.922816E+28 -7.92281625142643E+28
' 79228162514264337593543950335 7.922816E+28 7.92281625142643E+28

Remarks

This operation can produce round-off errors because a single-precision floating-point number has fewer significant digits than a Decimal.

You can also convert a Decimal to a Single value by using the Explicit assignment operator. Because the conversion can entail a loss of precision, you must use a casting operator in C# or a conversion function in Visual Basic.

Applies to

See also


Feedback

Was this page helpful?