Convert.ToSingle 方法

定义

将指定的值转换为单精度浮点数。Converts a specified value to a single-precision floating-point number.

重载

ToSingle(String, IFormatProvider)

使用指定的区域性特定格式设置信息,将数字的指定字符串表示形式转换为等效的单精度浮点数。Converts the specified string representation of a number to an equivalent single-precision floating-point number, using the specified culture-specific formatting information.

ToSingle(SByte)

将指定的 8 位带符号整数的值转换为等效的单精度浮点数。Converts the value of the specified 8-bit signed integer to the equivalent single-precision floating-point number.

ToSingle(Object, IFormatProvider)

使用指定的区域性特定格式设置信息,将指定对象的值转换为单精度浮点数。Converts the value of the specified object to an single-precision floating-point number, using the specified culture-specific formatting information.

ToSingle(UInt64)

将指定的 64 位无符号整数的值转换为等效的单精度浮点数。Converts the value of the specified 64-bit unsigned integer to an equivalent single-precision floating-point number.

ToSingle(UInt32)

将指定的 32 位无符号整数的值转换为等效的单精度浮点数。Converts the value of the specified 32-bit unsigned integer to an equivalent single-precision floating-point number.

ToSingle(String)

将数字的指定字符串表示形式转换为等效的单精度浮点数。Converts the specified string representation of a number to an equivalent single-precision floating-point number.

ToSingle(Single)

返回指定的单精度浮点数;不执行任何实际的转换。Returns the specified single-precision floating-point number; no actual conversion is performed.

ToSingle(Object)

将指定对象的值转换为单精度浮点数。Converts the value of the specified object to a single-precision floating-point number.

ToSingle(UInt16)

将指定的 16 位无符号整数的值转换为等效的单精度浮点数。Converts the value of the specified 16-bit unsigned integer to the equivalent single-precision floating-point number.

ToSingle(Int32)

将指定的 32 位带符号整数的值转换为等效的单精度浮点数。Converts the value of the specified 32-bit signed integer to an equivalent single-precision floating-point number.

ToSingle(Int16)

将指定的 16 位带符号整数的值转换为等效的单精度浮点数。Converts the value of the specified 16-bit signed integer to an equivalent single-precision floating-point number.

ToSingle(Double)

将指定的双精度浮点数的值转换为等效的单精度浮点数。Converts the value of the specified double-precision floating-point number to an equivalent single-precision floating-point number.

ToSingle(Decimal)

将指定的十进制数的值转换为等效的单精度浮点数。Converts the value of the specified decimal number to an equivalent single-precision floating-point number.

ToSingle(DateTime)

调用此方法始终引发 InvalidCastExceptionCalling this method always throws InvalidCastException.

ToSingle(Char)

调用此方法始终引发 InvalidCastExceptionCalling this method always throws InvalidCastException.

ToSingle(Byte)

将指定的 8 位无符号整数的值转换为等效的单精度浮点数。Converts the value of the specified 8-bit unsigned integer to the equivalent single-precision floating-point number.

ToSingle(Boolean)

将指定的布尔值转换为等效的单精度浮点数。Converts the specified Boolean value to the equivalent single-precision floating-point number.

ToSingle(Int64)

将指定的 64 位带符号整数的值转换为等效的单精度浮点数。Converts the value of the specified 64-bit signed integer to an equivalent single-precision floating-point number.

ToSingle(String, IFormatProvider)

使用指定的区域性特定格式设置信息,将数字的指定字符串表示形式转换为等效的单精度浮点数。Converts the specified string representation of a number to an equivalent single-precision floating-point number, using the specified culture-specific formatting information.

public:
 static float ToSingle(System::String ^ value, IFormatProvider ^ provider);
public static float ToSingle (string value, IFormatProvider provider);
static member ToSingle : string * IFormatProvider -> single
Public Shared Function ToSingle (value As String, provider As IFormatProvider) As Single

参数

value
String

包含要转换的数字的字符串。A string that contains the number to convert.

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。An object that supplies culture-specific formatting information.

返回

value 中数字等效的单精度浮点数,如果 valuenull,则为 0(零)。A single-precision floating-point number that is equivalent to the number in value, or 0 (zero) if value is null.

异常

value 不是一个具有有效格式的数字。value is not a number in a valid format.

value 表示一个小于 MinValue 或大于 MaxValue 的数字。value represents a number that is less than MinValue or greater than MaxValue.

示例

下面的示例使用IFormatProvider在将数字字符串数组中的元素转换为Single值时表示 en-us 和 fr-fr 区域性的对象。The following example uses IFormatProvider objects that represent the en-US and fr-FR cultures when it converts the elements in an array of numeric strings to Single values.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] values = { "123456789", "12345.6789", "12 345,6789",
                          "123,456.789", "123 456,789", "123,456,789.0123",
                          "123 456 789,0123", "1.235e12", "1.03221e-05", 
                          Double.MaxValue.ToString() };
      CultureInfo[] cultures = { new CultureInfo("en-US"),
                                 new CultureInfo("fr-FR") }; 

      foreach (CultureInfo culture in cultures)
      {
         Console.WriteLine("String -> Single Conversion Using the {0} Culture",
                           culture.Name);
         foreach (string value in values)
         {
            Console.Write("{0,22}  ->  ", value);
            try {
               Console.WriteLine(Convert.ToSingle(value, culture));
            }
            catch (FormatException) {
               Console.WriteLine("FormatException");
            }
            catch (OverflowException) {
               Console.WriteLine("OverflowException");
            }
         }
         Console.WriteLine();
      }                     
   }
}
// The example displays the following output:
//    String -> Single Conversion Using the en-US Culture
//                 123456789  ->  1.234568E+08
//                12345.6789  ->  12345.68
//               12 345,6789  ->  FormatException
//               123,456.789  ->  123456.8
//               123 456,789  ->  FormatException
//          123,456,789.0123  ->  1.234568E+08
//          123 456 789,0123  ->  FormatException
//                  1.235e12  ->  1.235E+12
//               1.03221e-05  ->  1.03221E-05
//     1.79769313486232E+308  ->  Overflow
//    
//    String -> Single Conversion Using the fr-FR Culture
//                 123456789  ->  1.234568E+08
//                12345.6789  ->  FormatException
//               12 345,6789  ->  12345.68
//               123,456.789  ->  FormatException
//               123 456,789  ->  123456.8
//          123,456,789.0123  ->  FormatException
//          123 456 789,0123  ->  1.234568E+08
//                  1.235e12  ->  FormatException
//               1.03221e-05  ->  FormatException
//     1.79769313486232E+308  ->  FormatException
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim values() As String = { "123456789", "12345.6789", "12 345,6789", _
                                 "123,456.789", "123 456,789", "123,456,789.0123", _
                                 "123 456 789,0123", "1.235e12", "1.03221e-05", _
                                 Double.MaxValue.ToString() }
      Dim cultures() As CultureInfo = { New CultureInfo("en-US"), _
                                        New CultureInfo("fr-FR") } 

      For Each culture As CultureInfo In cultures
         Console.WriteLine("String -> Single Conversion Using the {0} Culture", _
                           culture.Name)
         For Each value As String In values
            Console.Write("{0,22}  ->  ", value)
            Try
               Console.WriteLine(Convert.ToSingle(value, culture))
            Catch e As FormatException
               Console.WriteLine("FormatException")
            CAtch e As OverflowException
               Console.WriteLine("Overflow")
            End Try   
         Next
         Console.WriteLine()
      Next                     
   End Sub
End Module
' The example displays the following output:
'    String -> Single Conversion Using the en-US Culture
'                 123456789  ->  1.234568E+08
'                12345.6789  ->  12345.68
'               12 345,6789  ->  FormatException
'               123,456.789  ->  123456.8
'               123 456,789  ->  FormatException
'          123,456,789.0123  ->  1.234568E+08
'          123 456 789,0123  ->  FormatException
'                  1.235e12  ->  1.235E+12
'               1.03221e-05  ->  1.03221E-05
'     1.79769313486232E+308  ->  Overflow
'    
'    String -> Single Conversion Using the fr-FR Culture
'                 123456789  ->  1.234568E+08
'                12345.6789  ->  FormatException
'               12 345,6789  ->  12345.68
'               123,456.789  ->  FormatException
'               123 456,789  ->  123456.8
'          123,456,789.0123  ->  FormatException
'          123 456 789,0123  ->  1.234568E+08
'                  1.235e12  ->  FormatException
'               1.03221e-05  ->  FormatException
'     1.79769313486232E+308  ->  FormatException

注解

返回值是对Single.Parse value调用方法的结果。The return value is the result of invoking the Single.Parse method on value.

provider是一个IFormatProvider NumberFormatInfo获取对象的实例。provider is an IFormatProvider instance that obtains a NumberFormatInfo object. 对象提供有关的格式的value区域性特定信息。 NumberFormatInfoThe NumberFormatInfo object provides culture-specific information about the format of value. 如果provider NumberFormatInfonull,则使用当前区域性的。If provider is null, the NumberFormatInfo for the current culture is used.

如果你不希望在转换失败时处理异常,则可以改为Single.TryParse调用方法。If you prefer not to handle an exception if the conversion fails, you can call the Single.TryParse method instead. 它将返回Boolean一个值,该值指示转换是成功还是失败。It returns a Boolean value that indicates whether the conversion succeeded or failed.

ToSingle(SByte)

重要

此 API 不符合 CLS。

将指定的 8 位带符号整数的值转换为等效的单精度浮点数。Converts the value of the specified 8-bit signed integer to the equivalent single-precision floating-point number.

public:
 static float ToSingle(System::SByte value);
[System.CLSCompliant(false)]
public static float ToSingle (sbyte value);
static member ToSingle : sbyte -> single
Public Shared Function ToSingle (value As SByte) As Single

参数

value
SByte

要转换的 8 位带符号整数。The 8-bit signed integer to convert.

返回

一个与 value 等效的 8 位带符号整数。An 8-bit signed integer that is equivalent to value.

属性

示例

下面的示例将有符号字节数组中的每个元素Single转换为一个值。The following example converts each element in a signed byte array to a Single value.

sbyte[] numbers = { SByte.MinValue, -23, 0, 17, SByte.MaxValue };
float result;

foreach (sbyte number in numbers)
{
   result = Convert.ToSingle(number);
   Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", 
                     number.GetType().Name, number, 
                     result.GetType().Name, result);

}
// The example displays the following output:
//    Converted the SByte value '-128' to the Single value -128.
//    Converted the SByte value '-23' to the Single value -23.
//    Converted the SByte value '0' to the Single value 0.
//    Converted the SByte value '17' to the Single value 17.
//    Converted the SByte value '127' to the Single value 127.
Dim numbers() As SByte = { SByte.MinValue, -23, 0, 17, SByte.MaxValue }
Dim result As Single

For Each number As SByte In numbers
   result = Convert.ToSingle(number)
      Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", _
                        number.GetType().Name, number, _
                        result.GetType().Name, result)
Next
' The example displays the following output:
'    Converted the SByte value '-128' to the Single value -128.
'    Converted the SByte value '-23' to the Single value -23.
'    Converted the SByte value '0' to the Single value 0.
'    Converted the SByte value '17' to the Single value 17.
'    Converted the SByte value '127' to the Single value 127.

ToSingle(Object, IFormatProvider)

使用指定的区域性特定格式设置信息,将指定对象的值转换为单精度浮点数。Converts the value of the specified object to an single-precision floating-point number, using the specified culture-specific formatting information.

public:
 static float ToSingle(System::Object ^ value, IFormatProvider ^ provider);
public static float ToSingle (object value, IFormatProvider provider);
static member ToSingle : obj * IFormatProvider -> single
Public Shared Function ToSingle (value As Object, provider As IFormatProvider) As Single

参数

value
Object

一个实现 IConvertible 接口的对象。An object that implements the IConvertible interface.

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。An object that supplies culture-specific formatting information.

返回

value 等效的单精度浮点数,如果 valuenull,则为零。A single-precision floating-point number that is equivalent to value, or zero if value is null.

异常

value 的格式不正确。value is not in an appropriate format.

value 不实现 IConvertiblevalue does not implement IConvertible.

value 表示一个小于 MinValue 或大于 MaxValue 的数字。value represents a number that is less than MinValue or greater than MaxValue.

示例

下面的示例定义一个实现 Temperature 接口的 IConvertible 类。The following example defines a Temperature class that implements the IConvertible interface. 它的IConvertible.ToSingle方法实现返回表示温度的私有Single变量的内部值。Its implementation of the IConvertible.ToSingle method returns the internal value of a private Single variable that represents the temperature.

using System;
using System.Globalization;

public class Temperature : IConvertible
{
   private float m_Temp;

   public Temperature(float temperature)
   {
      this.m_Temp = temperature;
   }
   
   public float Celsius
   {
      get { return this.m_Temp; }   
   }
   
   public float Kelvin
   {
      get { return this.m_Temp + 273.15f; }    
   }
   
   public float Fahrenheit
   {
      get { return (float) Math.Round(this.m_Temp * 9 / 5 + 32, 2); }
   }
   
   public override string ToString()
   {
      return m_Temp.ToString("N2") + " °C";
   }

   // IConvertible implementations.
   public TypeCode GetTypeCode()
   {
      return TypeCode.Object;
   }
   
   public bool ToBoolean(IFormatProvider provider) 
   {
      if (m_Temp == 0)
         return false;
      else
         return true;
   } 
   
   public byte ToByte(IFormatProvider provider)
   {
      if (m_Temp < Byte.MinValue || m_Temp > Byte.MaxValue)
         throw new OverflowException(String.Format("{0} is out of range of the Byte type.", 
                                                   this.m_Temp));
      else
         return Convert.ToByte(this.m_Temp);
   }
   
   public char ToChar(IFormatProvider provider)
   {
      throw new InvalidCastException("Temperature to Char conversion is not supported.");
   } 
   
   public DateTime ToDateTime(IFormatProvider provider)
   {
      throw new InvalidCastException("Temperature to DateTime conversion is not supported.");
   }
   
   public decimal ToDecimal(IFormatProvider provider)
   {
      return Convert.ToDecimal(this.m_Temp);
   }
   
   public double ToDouble(IFormatProvider provider)
   {
      return Convert.ToDouble(this.m_Temp);
   }   
   
   public short ToInt16(IFormatProvider provider)
   {
      if (this.m_Temp < Int16.MinValue || this.m_Temp > Int16.MaxValue)
         throw new OverflowException(String.Format("{0} is out of range of the Int16 type.",
                                                   this.m_Temp));
      else
         return Convert.ToInt16(this.m_Temp);
   }
   
   public int ToInt32(IFormatProvider provider)
      {
      if (this.m_Temp < Int32.MinValue || this.m_Temp > Int32.MaxValue)
         throw new OverflowException(String.Format("{0} is out of range of the Int32 type.",
                                                   this.m_Temp));
      else
         return Convert.ToInt32(this.m_Temp);
   }
   
   public long ToInt64(IFormatProvider provider)
   {
      if (this.m_Temp < Int64.MinValue || this.m_Temp > Int64.MaxValue)
         throw new OverflowException(String.Format("{0} is out of range of the Int64 type.",
                                                   this.m_Temp));
      else
         return Convert.ToInt64(this.m_Temp);
   }
   
   public sbyte ToSByte(IFormatProvider provider)
   {
      if (this.m_Temp < SByte.MinValue || this.m_Temp > SByte.MaxValue)
         throw new OverflowException(String.Format("{0} is out of range of the SByte type.",
                                                   this.m_Temp));
      else
         return Convert.ToSByte(this.m_Temp);
   }

   public float ToSingle(IFormatProvider provider)
   {
      return this.m_Temp;
   }

   public string ToString(IFormatProvider provider)
   {
      return m_Temp.ToString("N2", provider) + " °C";
   }
   
   public object ToType(Type conversionType, IFormatProvider provider)
   {
      switch (Type.GetTypeCode(conversionType))
      {
         case TypeCode.Boolean: 
            return this.ToBoolean(null);
         case TypeCode.Byte:
            return this.ToByte(null);
         case TypeCode.Char:
            return this.ToChar(null);
         case TypeCode.DateTime:
            return this.ToDateTime(null);
         case TypeCode.Decimal:
            return this.ToDecimal(null);
         case TypeCode.Double:
            return this.ToDouble(null);
         case TypeCode.Int16:
            return this.ToInt16(null);
         case TypeCode.Int32:
            return this.ToInt32(null);
         case TypeCode.Int64:
            return this.ToInt64(null);
         case TypeCode.Object:
            if (typeof(Temperature).Equals(conversionType))
               return this;
            else
               throw new InvalidCastException(String.Format("Conversion to a {0} is not supported.",
                                                            conversionType.Name));
         case TypeCode.SByte:
            return this.ToSByte(null);
         case TypeCode.Single:
            return this.ToSingle(null);
         case TypeCode.String:
            return this.ToString(provider);
         case TypeCode.UInt16:
            return this.ToUInt16(null);
         case TypeCode.UInt32:
            return this.ToUInt32(null);
         case TypeCode.UInt64:
            return this.ToUInt64(null);   
         default:
            throw new InvalidCastException(String.Format("Conversion to {0} is not supported.", conversionType.Name));   
      }
   }
   
   public ushort ToUInt16(IFormatProvider provider)
   {
      if (this.m_Temp < UInt16.MinValue || this.m_Temp > UInt16.MaxValue)
         throw new OverflowException(String.Format("{0} is out of range of the UInt16 type.",
                                                   this.m_Temp));
      else
         return Convert.ToUInt16(this.m_Temp);
   }

   public uint ToUInt32(IFormatProvider provider)
   {
      if (this.m_Temp < UInt32.MinValue || this.m_Temp > UInt32.MaxValue)
         throw new OverflowException(String.Format("{0} is out of range of the UInt32 type.",
                                                   this.m_Temp));
      else
         return Convert.ToUInt32(this.m_Temp);
   }
   
   public ulong ToUInt64(IFormatProvider provider)
   {
      if (this.m_Temp < UInt64.MinValue || this.m_Temp > UInt64.MaxValue)
         throw new OverflowException(String.Format("{0} is out of range of the UInt64 type.",
                                                   this.m_Temp));
      else
         return Convert.ToUInt64(this.m_Temp);
   }
}
Imports System.Globalization

Public Class Temperature : Implements IConvertible
   Private m_Temp As Single

   Public Sub New(temperature As Single)
      Me.m_Temp = temperature
   End Sub
   
   Public ReadOnly Property Celsius() As Single
      Get
         Return Me.m_Temp
      End Get   
   End Property
   
   Public ReadOnly Property Kelvin() As Single
      Get
         Return Me.m_Temp + 273.15F
      End Get
   End Property
   
   Public ReadOnly Property Fahrenheit() As Single
      Get
         Return CSng(Math.Round(Me.m_Temp * 9 / 5 + 32, 2))
      End Get      
   End Property
   
   Public Overrides Function ToString() As String
      Return m_Temp.ToString("N2") & " °C"
   End Function

   ' IConvertible implementations.
   Public Function GetTypeCode() As TypeCode _
                   Implements IConvertible.GetTypeCode
      Return TypeCode.Object
   End Function
   
   Public Function ToBoolean(provider As IFormatProvider) As Boolean _
                   Implements IConvertible.ToBoolean
      If m_Temp = 0 Then
         Return False
      Else
         Return True
      End If
   End Function 
   
   Public Function ToByte(provider As IFormatProvider) As Byte _
                   Implements IConvertible.ToByte
      If m_Temp < Byte.MinValue Or m_Temp > Byte.MaxValue Then
         Throw New OverflowException(String.Format("{0} is out of range of the Byte type.", _ 
                                                   Me.m_Temp)) 
      Else
         Return Convert.ToByte(Me.m_Temp)
      End If       
   End Function
   
   Public Function ToChar(provider As IFormatProvider) As Char _
                   Implements IConvertible.ToChar
      Throw New InvalidCastException("Temperature to Char conversion is not supported.")
   End Function 
   
   Public Function ToDateTime(provider As IFormatProvider) As Date _
                   Implements IConvertible.ToDateTime
      Throw New InvalidCastException("Temperature to DateTime conversion is not supported.")
   End Function
   
   Public Function ToDecimal(provider As IFormatProvider) As Decimal _
                   Implements IConvertible.ToDecimal
      Return Convert.ToDecimal(Me.m_Temp)
   End Function
   
   Public Function ToDouble(provider As IFormatProvider) As Double _
                   Implements IConvertible.ToDouble
      Return Convert.ToDouble(Me.m_Temp)
   End Function   
   
   Public Function ToInt16(provider As IFormatProvider) As Int16 _
                   Implements IConvertible.ToInt16
      If Me.m_Temp < Int16.MinValue Or Me.m_Temp > Int16.MaxValue Then
         Throw New OverflowException(String.Format("{0} is out of range of the Int16 type.", _
                                                   Me.m_Temp))
      Else
         Return Convert.ToInt16(Me.m_Temp)   
      End If
   End Function
   
   Public Function ToInt32(provider As IFormatProvider) As Int32 _
                   Implements IConvertible.ToInt32
      If Me.m_Temp < Int32.MinValue Or Me.m_Temp > Int32.MaxValue Then
         Throw New OverflowException(String.Format("{0} is out of range of the Int32 type.", _
                                                   Me.m_Temp))
      Else
         Return Convert.ToInt32(Me.m_Temp)
      End If      
   End Function
   
   Public Function ToInt64(provider As IFormatProvider) As Int64 _
                   Implements IConvertible.ToInt64
      If Me.m_Temp < Int64.MinValue Or Me.m_Temp > Int64.MaxValue Then
         Throw New OverflowException(String.Format("{0} is out of range of the Int64 type.", _
                                                   Me.m_Temp))
      Else
         Return Convert.ToInt64(Me.m_Temp)
      End If      
   End Function
   
   Public Function ToSByte(provider As IFormatProvider) As SByte _
                   Implements IConvertible.ToSByte
      If Me.m_Temp < SByte.MinValue Or Me.m_Temp > SByte.MaxValue Then
         Throw New OverflowException(String.Format("{0} is out of range of the SByte type.", _
                                                   Me.m_Temp))
      Else
         Return Convert.ToSByte(Me.m_Temp)
      End If      
   End Function

   Public Function ToSingle(provider As IFormatProvider) As Single _
                   Implements IConvertible.ToSingle
      Return Me.m_Temp
   End Function

   Public Overloads Function ToString(provider As IFormatProvider) As String _
                   Implements IConvertible.ToString
      Return m_Temp.ToString("N2", provider) & " °C"
   End Function
   
   Public Function ToType(conversionType As Type, provider As IFormatProvider) As Object _
                   Implements IConvertible.ToType
      Select Case Type.GetTypeCode(conversionType)
         Case TypeCode.Boolean 
            Return Me.ToBoolean(Nothing)
         Case TypeCode.Byte
            Return Me.ToByte(Nothing)
         Case TypeCode.Char
            Return Me.ToChar(Nothing)
         Case TypeCode.DateTime
            Return Me.ToDateTime(Nothing)
         Case TypeCode.Decimal
            Return Me.ToDecimal(Nothing)
         Case TypeCode.Double
            Return Me.ToDouble(Nothing)
         Case TypeCode.Int16
            Return Me.ToInt16(Nothing)
         Case TypeCode.Int32
            Return Me.ToInt32(Nothing)
         Case TypeCode.Int64
            Return Me.ToInt64(Nothing)
         Case TypeCode.Object
            If GetType(Temperature).Equals(conversionType) Then
               Return Me
            Else
               Throw New InvalidCastException(String.Format("Conversion to a {0} is not supported.", _
                                                            conversionType.Name))
            End If 
         Case TypeCode.SByte
            Return Me.ToSByte(Nothing)
         Case TypeCode.Single
            Return Me.ToSingle(Nothing)
         Case TypeCode.String
            Return Me.ToString(provider)
         Case TypeCode.UInt16
            Return Me.ToUInt16(Nothing)
         Case TypeCode.UInt32
            Return Me.ToUInt32(Nothing)
         Case TypeCode.UInt64
            Return Me.ToUInt64(Nothing)   
         Case Else
            Throw New InvalidCastException(String.Format("Conversion to {0} is not supported.", conversionType.Name))   
      End Select
   End Function
   
   Public Function ToUInt16(provider As IFormatProvider) As UInt16 _
                   Implements IConvertible.ToUInt16
      If Me.m_Temp < UInt16.MinValue Or Me.m_Temp > UInt16.MaxValue Then
         Throw New OverflowException(String.Format("{0} is out of range of the UInt16 type.", _
                                                   Me.m_Temp))
      Else
         Return Convert.ToUInt16(Me.m_Temp)
      End If   
   End Function

   Public Function ToUInt32(provider As IFormatProvider) As UInt32 _
                   Implements IConvertible.ToUInt32
      If Me.m_Temp < UInt32.MinValue Or Me.m_Temp > UInt32.MaxValue Then
         Throw New OverflowException(String.Format("{0} is out of range of the UInt32 type.", _
                                                   Me.m_Temp))
      Else
         Return Convert.ToUInt32(Me.m_Temp)
      End If   
   End Function
   
   Public Function ToUInt64(provider As IFormatProvider) As UInt64 _
                   Implements IConvertible.ToUInt64
      If Me.m_Temp < UInt64.MinValue Or Me.m_Temp > UInt64.MaxValue Then
         Throw New OverflowException(String.Format("{0} is out of range of the UInt64 type.", _
                                                   Me.m_Temp))
      Else
         Return Convert.ToUInt64(Me.m_temp)
      End If   
   End Function
End Class

下面的示例演示如何调用Convert.ToSingle(Object, IFormatProvider)方法,进而IConvertible.ToSingle调用Temperature类的实现。The following example illustrates how a call to the Convert.ToSingle(Object, IFormatProvider) method, in turn, calls the IConvertible.ToSingle implementation of the Temperature class.

public class Example
{
   public static void Main()
   {
      Temperature cold = new Temperature(-40);
      Temperature freezing = new Temperature(0);
      Temperature boiling = new Temperature(100);
      
      Console.WriteLine(Convert.ToInt32(cold, null));
      Console.WriteLine(Convert.ToInt32(freezing, null));
      Console.WriteLine(Convert.ToDouble(boiling, null));
   }
}
// The example dosplays the following output:
//       -40
//       0
//       100
Module Example
   Public Sub Main()
      Dim cold As New Temperature(-40)
      Dim freezing As New Temperature(0)
      Dim boiling As New Temperature(100)
      
      Console.WriteLine(Convert.ToInt32(cold, Nothing))
      Console.WriteLine(Convert.ToInt32(freezing, Nothing))
      Console.WriteLine(Convert.ToDouble(boiling, Nothing))
   End Sub
End Module
' The example displays the following output:
'       -40
'       0
'       100

注解

返回值是调用IConvertible.ToSingle的基础value类型的方法的结果。The return value is the result of invoking the IConvertible.ToSingle method of the underlying type of value.

provider使用户能够指定有关的内容的value特定于区域性的转换信息。provider enables the user to specify culture-specific conversion information about the contents of value. 例如,如果value String是表示数字provider的,则可能提供有关用于表示该数字的表示法的区域性特定信息。For example, if value is a String that represents a number, provider could supply culture-specific information about the notation used to represent that number.

基类型将忽略provider; 但是,如果value是实现IConvertible接口的用户定义类型,则可以使用参数。The base types ignore provider; however, the parameter may be used if value is a user-defined type that implements the IConvertible interface.

ToSingle(UInt64)

重要

此 API 不符合 CLS。

将指定的 64 位无符号整数的值转换为等效的单精度浮点数。Converts the value of the specified 64-bit unsigned integer to an equivalent single-precision floating-point number.

public:
 static float ToSingle(System::UInt64 value);
[System.CLSCompliant(false)]
public static float ToSingle (ulong value);
static member ToSingle : uint64 -> single
Public Shared Function ToSingle (value As ULong) As Single

参数

value
UInt64

要转换的 64 位无符号整数。The 64-bit unsigned integer to convert.

返回

一个等于 value 的单精度浮点数。A single-precision floating-point number that is equivalent to value.

属性

示例

下面的示例将无符号长整数数组中的每个元素转换Single为一个值。The following example converts each element in an array of unsigned long integers to a Single value.

ulong[] numbers = { UInt64.MinValue, 121, 12345, UInt64.MaxValue };
float result;

foreach (ulong number in numbers)
{
   result = Convert.ToSingle(number);
   Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", 
                     number.GetType().Name, number, 
                     result.GetType().Name, result);
}   
// The example displays the following output:
//    Converted the UInt64 value '0' to the Single value 0.
//    Converted the UInt64 value '121' to the Single value 121.
//    Converted the UInt64 value '12345' to the Single value 12345.
//    Converted the UInt64 value '18446744073709551615' to the Single value 1.844674E+19.
Dim numbers() As ULong = { UInt64.MinValue, 121, 12345, UInt64.MaxValue }
Dim result As Single

For Each number As ULong In numbers
   result = Convert.ToSingle(number)
      Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", _
                        number.GetType().Name, number, _
                        result.GetType().Name, result)
Next   
' The example displays the following output:
'    Converted the UInt64 value '0' to the Single value 0.
'    Converted the UInt64 value '121' to the Single value 121.
'    Converted the UInt64 value '12345' to the Single value 12345.
'    Converted the UInt64 value '18446744073709551615' to the Single value 1.844674E+19.

ToSingle(UInt32)

重要

此 API 不符合 CLS。

将指定的 32 位无符号整数的值转换为等效的单精度浮点数。Converts the value of the specified 32-bit unsigned integer to an equivalent single-precision floating-point number.

public:
 static float ToSingle(System::UInt32 value);
[System.CLSCompliant(false)]
public static float ToSingle (uint value);
static member ToSingle : uint32 -> single
Public Shared Function ToSingle (value As UInteger) As Single

参数

value
UInt32

要转换的 32 位无符号整数。The 32-bit unsigned integer to convert.

返回

一个等于 value 的单精度浮点数。A single-precision floating-point number that is equivalent to value.

属性

示例

下面的示例将无符号整数数组中的每个元素转换Single为一个值。The following example converts each element in an array of unsigned integers to a Single value.

uint[] numbers = { UInt32.MinValue, 121, 12345, UInt32.MaxValue };
float result;

foreach (uint number in numbers)
{
   result = Convert.ToSingle(number);
   Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", 
                     number.GetType().Name, number, 
                     result.GetType().Name, result);
}   
// The example displays the following output:
//    Converted the UInt32 value '0' to the Single value 0.
//    Converted the UInt32 value '121' to the Single value 121.
//    Converted the UInt32 value '12345' to the Single value 12345.
//    Converted the UInt32 value '4294967295' to the Single value 4.294967E+09.
   Dim numbers() As UInteger = { UInt32.MinValue, 121, 12345, UInt32.MaxValue }
   Dim result As Single
   
   For Each number As UInteger In numbers
      result = Convert.ToSingle(number)
         Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", _
                           number.GetType().Name, number, _
                           result.GetType().Name, result)
   Next   
   ' The example displays the following output:
'    Converted the UInt32 value '0' to the Single value 0.
'    Converted the UInt32 value '121' to the Single value 121.
'    Converted the UInt32 value '12345' to the Single value 12345.
'    Converted the UInt32 value '4294967295' to the Single value 4.294967E+09.

ToSingle(String)

将数字的指定字符串表示形式转换为等效的单精度浮点数。Converts the specified string representation of a number to an equivalent single-precision floating-point number.

public:
 static float ToSingle(System::String ^ value);
public static float ToSingle (string value);
static member ToSingle : string -> single
Public Shared Function ToSingle (value As String) As Single

参数

value
String

包含要转换的数字的字符串。A string that contains the number to convert.

返回

value 中数字等效的单精度浮点数,如果 valuenull,则为 0(零)。A single-precision floating-point number that is equivalent to the number in value, or 0 (zero) if value is null.

异常

value 不是一个具有有效格式的数字。value is not a number in a valid format.

value 表示一个小于 MinValue 或大于 MaxValue 的数字。value represents a number that is less than MinValue or greater than MaxValue.

示例

下面的示例尝试将数值字符串数组中的每个元素转换为一个Single值。The following example attempts to convert each element in an array of numeric strings to a Single value.

string[] values= { "-1,035.77219", "1AFF", "1e-35", "1.63f",
                   "1,635,592,999,999,999,999,999,999", "-17.455", 
                   "190.34001", "1.29e325"};
float result;

foreach (string value in values)
{
   try {
      result = Convert.ToSingle(value);
      Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", 
                        value.GetType().Name, value, 
                        result.GetType().Name, result);
   }   
   catch (FormatException) {
      Console.WriteLine("Unable to convert '{0}' to a Single.", value);
   }               
   catch (OverflowException) {
      Console.WriteLine("'{0}' is outside the range of a Single.", value);
   }
}       
// The example displays the following output:
//    Converted the String value '-1,035.77219' to the Single value -1035.772.
//    Unable to convert '1AFF' to a Single.
//    Converted the String value '1e-35' to the Single value 1E-35.
//    Unable to convert '1.63f' to a Single.
//    Converted the String value '1,635,592,999,999,999,999,999,999' to the Single value 1.635593E+24.
//    Converted the String value '-17.455' to the Single value -17.455.
//    Converted the String value '190.34001' to the Single value 190.34.
//    1.29e325' is outside the range of a Single.
Dim values() As String = { "-1,035.77219", "1AFF", "1e-35", "1.63f",
                           "1,635,592,999,999,999,999,999,999", "-17.455",
                           "190.34001", "1.29e325"}
Dim result As Single

For Each value As String In values
   Try
      result = Convert.ToSingle(value)
      Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.",
                        value.GetType().Name, value, _
                        result.GetType().Name, result)
   Catch e As FormatException
      Console.WriteLine("Unable to convert '{0}' to a Single.", value)            
   Catch e As OverflowException
      Console.WriteLine("'{0}' is outside the range of a Single.", value)
   End Try
Next       
' The example displays the following output:
'    Converted the String value '-1,035.77219' to the Single value -1035.772.
'    Unable to convert '1AFF' to a Single.
'    Converted the String value '1e-35' to the Single value 1E-35.
'    Unable to convert '1.63f' to a Single.
'    Converted the String value '1,635,592,999,999,999,999,999,999' to the Single value 1.635593E+24.
'    Converted the String value '-17.455' to the Single value -17.455.
'    Converted the String value '190.34001' to the Single value 190.34.
'    '1.29e325' is outside the range of a Single.

注解

使用方法等效于传递valueSingle.Parse(String)方法。 ToSingle(String)Using the ToSingle(String) method is equivalent to passing value to the Single.Parse(String) method. 使用当前线程区域性的格式设置约定解释 valuevalue is interpreted by using the formatting conventions of the current thread culture.

如果你不希望在转换失败时处理异常,则可以改为Single.TryParse调用方法。If you prefer not to handle an exception if the conversion fails, you can call the Single.TryParse method instead. 它将返回Boolean一个值,该值指示转换是成功还是失败。It returns a Boolean value that indicates whether the conversion succeeded or failed.

ToSingle(Single)

返回指定的单精度浮点数;不执行任何实际的转换。Returns the specified single-precision floating-point number; no actual conversion is performed.

public:
 static float ToSingle(float value);
public static float ToSingle (float value);
static member ToSingle : single -> single
Public Shared Function ToSingle (value As Single) As Single

参数

value
Single

要返回的单精度浮点数。The single-precision floating-point number to return.

返回

不经更改即返回 valuevalue is returned unchanged.

另请参阅

ToSingle(Object)

将指定对象的值转换为单精度浮点数。Converts the value of the specified object to a single-precision floating-point number.

public:
 static float ToSingle(System::Object ^ value);
public static float ToSingle (object value);
static member ToSingle : obj -> single
Public Shared Function ToSingle (value As Object) As Single

参数

value
Object

用于实现 IConvertible 接口的对象,或为 nullAn object that implements the IConvertible interface, or null.

返回

value 等效的单精度浮点数,如果 valuenull,则为零。A single-precision floating-point number that is equivalent to value, or zero if value is null.

异常

value 的格式不正确。value is not in an appropriate format.

value 不实现 IConvertible 接口。value does not implement the IConvertible interface.

- 或 --or- 不支持该转换。The conversion is not supported.

value 表示一个小于 MinValue 或大于 MaxValue 的数字。value represents a number that is less than MinValue or greater than MaxValue.

示例

下面的示例尝试将对象数组中的每个元素转换为Single一个值。The following example attempts to convert each element in an object array to a Single value.

object[] values = { true, 'a', 123, 1.764e32, "9.78", "1e-02",
                    1.67e03, "A100", "1,033.67", DateTime.Now,
                    Decimal.MaxValue };   
float result;

foreach (object value in values)
{
   try {
      result = Convert.ToSingle(value);
      Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", 
                        value.GetType().Name, value, 
                        result.GetType().Name, result);
   }
   catch (FormatException) {
      Console.WriteLine("The {0} value {1} is not recognized as a valid Single value.",
                        value.GetType().Name, value);
   }                     
   catch (OverflowException) {
      Console.WriteLine("The {0} value {1} is outside the range of the Single type.",
                        value.GetType().Name, value);
   }
   catch (InvalidCastException) {
      Console.WriteLine("Conversion of the {0} value {1} to a Single is not supported.",
                        value.GetType().Name, value);
   }                     
}
// The example displays the following output:
//    Converted the Boolean value 'True' to the Single value 1.
//    Conversion of the Char value a to a Single is not supported.
//    Converted the Int32 value '123' to the Single value 123.
//    Converted the Double value '1.764E+32' to the Single value 1.764E+32.
//    Converted the String value '9.78' to the Single value 9.78.
//    Converted the String value '1e-02' to the Single value 0.01.
//    Converted the Double value '1670' to the Single value 1670.
//    The String value A100 is not recognized as a valid Single value.
//    Converted the String value '1,033.67' to the Single value 1033.67.
//    Conversion of the DateTime value 11/7/2008 08:02:35 AM to a Single is not supported.
//    Converted the Decimal value '79228162514264337593543950335' to the Single value 7.922816E+28.
Dim values() As Object = { True, "a"c, 123, 1.764e32, "9.78", "1e-02", _
                           1.67e03, "A100", "1,033.67", Date.Now, _
                           Decimal.MaxValue }   
Dim result As Single

For Each value As Object In values
   Try
      result = Convert.ToSingle(value)
      Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", _
                        value.GetType().Name, value, _
                        result.GetType().Name, result)

   Catch e As FormatException
      Console.WriteLine("The {0} value {1} is not recognized as a valid Single value.", _
                        value.GetType().Name, value)
   Catch e As OverflowException
      Console.WriteLine("The {0} value {1} is outside the range of the Single type.", _
                        value.GetType().Name, value)
   
   Catch e As InvalidCastException
      Console.WriteLine("Conversion of the {0} value {1} to a Single is not supported.", _
                        value.GetType().Name, value)
   End Try                     
Next
' The example displays the following output:
'    Converted the Boolean value 'True' to the Single value 1.
'    Conversion of the Char value a to a Single is not supported.
'    Converted the Int32 value '123' to the Single value 123.
'    Converted the Double value '1.764E+32' to the Single value 1.764E+32.
'    Converted the String value '9.78' to the Single value 9.78.
'    Converted the String value '1e-02' to the Single value 0.01.
'    Converted the Double value '1670' to the Single value 1670.
'    The String value A100 is not recognized as a valid Single value.
'    Converted the String value '1,033.67' to the Single value 1033.67.
'    Conversion of the DateTime value 11/7/2008 07:56:24 AM to a Single is not supported.
'    Converted the Decimal value '79228162514264337593543950335' to the Single value 7.922816E+28.

注解

返回值是调用IConvertible.ToSingle的基础value类型的方法的结果。The return value is the result of invoking the IConvertible.ToSingle method of the underlying type of value.

ToSingle(UInt16)

重要

此 API 不符合 CLS。

将指定的 16 位无符号整数的值转换为等效的单精度浮点数。Converts the value of the specified 16-bit unsigned integer to the equivalent single-precision floating-point number.

public:
 static float ToSingle(System::UInt16 value);
[System.CLSCompliant(false)]
public static float ToSingle (ushort value);
static member ToSingle : uint16 -> single
Public Shared Function ToSingle (value As UShort) As Single

参数

value
UInt16

要转换的 16 位无符号整数。The 16-bit unsigned integer to convert.

返回

一个等于 value 的单精度浮点数。A single-precision floating-point number that is equivalent to value.

属性

示例

下面的示例将16位无符号整数数组中的每个元素转换为Single一个值。The following example converts each element in an array of unsigned 16-bit integers to a Single value.

ushort[] numbers = { UInt16.MinValue, 121, 12345, UInt16.MaxValue };
float result;

foreach (ushort number in numbers)
{
   result = Convert.ToSingle(number);
   Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", 
                     number.GetType().Name, number, 
                     result.GetType().Name, result);
}   
// The example displays the following output:
//    Converted the UInt16 value '0' to the Single value 0.
//    Converted the UInt16 value '121' to the Single value 121.
//    Converted the UInt16 value '12345' to the Single value 12345.
//    Converted the UInt16 value '65535' to the Single value 65535.
Dim numbers() As UShort = { UInt16.MinValue, 121, 12345, UInt16.MaxValue }
Dim result As Single

For Each number As UShort In numbers
   result = Convert.ToSingle(number)
      Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", _
                        number.GetType().Name, number, _
                        result.GetType().Name, result)
Next   
' The example displays the following output:
'    Converted the UInt16 value '0' to the Single value 0.
'    Converted the UInt16 value '121' to the Single value 121.
'    Converted the UInt16 value '12345' to the Single value 12345.
'    Converted the UInt16 value '65535' to the Single value 65535.

ToSingle(Int32)

将指定的 32 位带符号整数的值转换为等效的单精度浮点数。Converts the value of the specified 32-bit signed integer to an equivalent single-precision floating-point number.

public:
 static float ToSingle(int value);
public static float ToSingle (int value);
static member ToSingle : int -> single
Public Shared Function ToSingle (value As Integer) As Single

参数

value
Int32

要转换的 32 位带符号整数。The 32-bit signed integer to convert.

返回

一个等于 value 的单精度浮点数。A single-precision floating-point number that is equivalent to value.

示例

下面的示例将整数数组中的每个元素转换Single为一个值。The following example converts each element in an integer array to a Single value.

int[] numbers = { Int32.MinValue, -1000, 0, 1000, Int32.MaxValue };
float result;

foreach (int number in numbers)
{
   result = Convert.ToSingle(number);
   Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", 
                     number.GetType().Name, number, 
                     result.GetType().Name, result);

}
// The example displays the following output:
//    Converted the Int32 value '-2147483648' to the Single value -2.147484E+09.
//    Converted the Int32 value '-1000' to the Single value -1000.
//    Converted the Int32 value '0' to the Single value 0.
//    Converted the Int32 value '1000' to the Single value 1000.
//    Converted the Int32 value '2147483647' to the Single value 2.147484E+09.
Dim numbers() As Integer = { Int32.MinValue, -1000, 0, 1000, Int32.MaxValue }
Dim result As Single

For Each number As Integer In numbers
   result = Convert.ToSingle(number)
   Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", _
                     number.GetType().Name, number, _
                     result.GetType().Name, result)
Next
' The example displays the following output:
'    Converted the Int32 value '-2147483648' to the Single value -2.147484E+09.
'    Converted the Int32 value '-1000' to the Single value -1000.
'    Converted the Int32 value '0' to the Single value 0.
'    Converted the Int32 value '1000' to the Single value 1000.
'    Converted the Int32 value '2147483647' to the Single value 2.147484E+09.

ToSingle(Int16)

将指定的 16 位带符号整数的值转换为等效的单精度浮点数。Converts the value of the specified 16-bit signed integer to an equivalent single-precision floating-point number.

public:
 static float ToSingle(short value);
public static float ToSingle (short value);
static member ToSingle : int16 -> single
Public Shared Function ToSingle (value As Short) As Single

参数

value
Int16

要转换的 16 位带符号整数。The 16-bit signed integer to convert.

返回

一个等于 value 的单精度浮点数。A single-precision floating-point number that is equivalent to value.

示例

下面的示例将16位整数数组中的每个元素转换为一个Single值。The following example converts each element in an array of 16-bit integers to a Single value.

short[] numbers = { Int16.MinValue, -1032, 0, 192, Int16.MaxValue };
float result;

foreach (short number in numbers)
{
   result = Convert.ToSingle(number);
   Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", 
                     number.GetType().Name, number, 
                     result.GetType().Name, result);

}                     
// The example displays the following output:
//    Converted the Int16 value '-32768' to the Single value -32768.
//    Converted the Int16 value '-1032' to the Single value -1032.
//    Converted the Int16 value '0' to the Single value 0.
//    Converted the Int16 value '192' to the Single value 192.
//    Converted the Int16 value '32767' to the Single value 32767.
Dim numbers() As Short = { Int16.MinValue, -1032, 0, 192, Int16.MaxValue }
Dim result As Single

For Each number As Short In numbers
   result = Convert.ToSingle(number)
   Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", _
                     number.GetType().Name, number, _
                     result.GetType().Name, result)
Next                     
' The example displays the following output:
'    Converted the Int16 value '-32768' to the Single value -32768.
'    Converted the Int16 value '-1032' to the Single value -1032.
'    Converted the Int16 value '0' to the Single value 0.
'    Converted the Int16 value '192' to the Single value 192.
'    Converted the Int16 value '32767' to the Single value 32767.

ToSingle(Double)

将指定的双精度浮点数的值转换为等效的单精度浮点数。Converts the value of the specified double-precision floating-point number to an equivalent single-precision floating-point number.

public:
 static float ToSingle(double value);
public static float ToSingle (double value);
static member ToSingle : double -> single
Public Shared Function ToSingle (value As Double) As Single

参数

value
Double

要转换的双精度浮点数。The double-precision floating-point number to convert.

返回

一个等于 value 的单精度浮点数。A single-precision floating-point number that is equivalent to value.

使用“舍入为最接近的数字”规则对 value 进行舍入。value is rounded using rounding to nearest. 例如,当舍入为两位小数时,值 2.345 变成 2.34,而值 2.355 变成 2.36。For example, when rounded to two decimals, the value 2.345 becomes 2.34 and the value 2.355 becomes 2.36.

示例

下面的示例将值数组中的Double每个元素转换为一个Single值。The following example converts each element in an array of Double values to a Single value.

double[] values = { Double.MinValue, -1.38e10, -1023.299, -12.98, 
                    0, 9.113e-16, 103.919, 17834.191, Double.MaxValue };
float result;

foreach (double value in values)
{
   result = Convert.ToSingle(value);
   Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", 
                     value.GetType().Name, value, 
                     result.GetType().Name, result);
}                                 
// The example displays the following output:
//    Converted the Double value '-1.79769313486232E+308' to the Single value -Infinity.
//    Converted the Double value '-13800000000' to the Single value -1.38E+10.
//    Converted the Double value '-1023.299' to the Single value -1023.299.
//    Converted the Double value '-12.98' to the Single value -12.98.
//    Converted the Double value '0' to the Single value 0.
//   Converted the Double value '9.113E-16' to the Single value 9.113E-16.
//    Converted the Double value '103.919' to the Single value 103.919.
//    Converted the Double value '17834.191' to the Single value 17834.19.
//    Converted the Double value '1.79769313486232E+308' to the Single value Infinity.
Dim values() As Double = { Double.MinValue, -1.38e10, -1023.299, -12.98, _
                           0, 9.113e-16, 103.919, 17834.191, Double.MaxValue }
Dim result As Single

For Each value As Double In values
   result = Convert.ToSingle(value)
   Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", _
                     value.GetType().Name, value, _
                     result.GetType().Name, result)
Next                                 
' The example displays the following output:
'    Converted the Double value '-1.79769313486232E+308' to the Single value -Infinity.
'    Converted the Double value '-13800000000' to the Single value -1.38E+10.
'    Converted the Double value '-1023.299' to the Single value -1023.299.
'    Converted the Double value '-12.98' to the Single value -12.98.
'    Converted the Double value '0' to the Single value 0.
'    Converted the Double value '9.113E-16' to the Single value 9.113E-16.
'    Converted the Double value '103.919' to the Single value 103.919.
'    Converted the Double value '17834.191' to the Single value 17834.19.
'    Converted the Double value '1.79769313486232E+308' to the Single value Infinity.

另请参阅

ToSingle(Decimal)

将指定的十进制数的值转换为等效的单精度浮点数。Converts the value of the specified decimal number to an equivalent single-precision floating-point number.

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

参数

value
Decimal

要转换的十进制数。The decimal number to convert.

返回

一个等于 value 的单精度浮点数。A single-precision floating-point number that is equivalent to value.

使用“舍入为最接近的数字”规则对 value 进行舍入。value is rounded using rounding to nearest. 例如,当舍入为两位小数时,值 2.345 变成 2.34,而值 2.355 变成 2.36。For example, when rounded to two decimals, the value 2.345 becomes 2.34 and the value 2.355 becomes 2.36.

示例

下面的示例将值数组中的Decimal每个元素转换为一个Single值。The following example converts each element in an array of Decimal values to a Single value.

decimal[] values = { Decimal.MinValue, -1034.23m, -12m, 0m, 147m, 
                            199.55m, 9214.16m, Decimal.MaxValue };
float result;

foreach (float value in values)
{
   result = Convert.ToSingle(value);
   Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.",
                     value.GetType().Name, value,
                     result.GetType().Name, result);
}                                  
// The example displays the following output:
//    Converted the Decimal value '-79228162514264337593543950335' to the Single value -7.922816E+28.
//    Converted the Decimal value '-1034.23' to the Single value -1034.23.
//    Converted the Decimal value '-12' to the Single value -12.
//    Converted the Decimal value '0' to the Single value 0.
//    Converted the Decimal value '147' to the Single value 147.
//    Converted the Decimal value '199.55' to the Single value 199.55.
//    Converted the Decimal value '9214.16' to the Single value 9214.16.
//    Converted the Decimal value '79228162514264337593543950335' to the Single value 7.922816E+28.
Dim values() As Decimal = { Decimal.MinValue, -1034.23d, -12d, 0d, 147d, _
                            199.55d, 9214.16d, Decimal.MaxValue }
Dim result As Single

For Each value As Decimal In values
   result = Convert.ToSingle(value)
   Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", _
                     value.GetType().Name, value, _
                     result.GetType().Name, result)
Next                                  
' The example displays the following output:
'    Converted the Decimal value '-79228162514264337593543950335' to the Single value -7.922816E+28.
'    Converted the Decimal value '-1034.23' to the Single value -1034.23.
'    Converted the Decimal value '-12' to the Single value -12.
'    Converted the Decimal value '0' to the Single value 0.
'    Converted the Decimal value '147' to the Single value 147.
'    Converted the Decimal value '199.55' to the Single value 199.55.
'    Converted the Decimal value '9214.16' to the Single value 9214.16.
'    Converted the Decimal value '79228162514264337593543950335' to the Single value 7.922816E+28.

另请参阅

ToSingle(DateTime)

调用此方法始终引发 InvalidCastExceptionCalling this method always throws InvalidCastException.

public:
 static float ToSingle(DateTime value);
public static float ToSingle (DateTime value);
static member ToSingle : DateTime -> single
Public Shared Function ToSingle (value As DateTime) As Single

参数

value
DateTime

要转换的日期和时间值。The date and time value to convert.

返回

不支持此转换。This conversion is not supported. 不返回任何值。No value is returned.

异常

不支持此转换。This conversion is not supported.

ToSingle(Char)

调用此方法始终引发 InvalidCastExceptionCalling this method always throws InvalidCastException.

public:
 static float ToSingle(char value);
public static float ToSingle (char value);
static member ToSingle : char -> single
Public Shared Function ToSingle (value As Char) As Single

参数

value
Char

要转换的 Unicode 字符。The Unicode character to convert.

返回

不支持此转换。This conversion is not supported. 不返回任何值。No value is returned.

异常

不支持此转换。This conversion is not supported.

另请参阅

ToSingle(Byte)

将指定的 8 位无符号整数的值转换为等效的单精度浮点数。Converts the value of the specified 8-bit unsigned integer to the equivalent single-precision floating-point number.

public:
 static float ToSingle(System::Byte value);
public static float ToSingle (byte value);
static member ToSingle : byte -> single
Public Shared Function ToSingle (value As Byte) As Single

参数

value
Byte

要转换的 8 位无符号整数。The 8-bit unsigned integer to convert.

返回

一个等于 value 的单精度浮点数。A single-precision floating-point number that is equivalent to value.

示例

下面的示例将一个字节值数组中的每个元素转换Single为一个值。The following example converts each element in an array of byte values to a Single value.

byte[] numbers = { Byte.MinValue, 10, 100, Byte.MaxValue };
float result;

foreach (byte number in numbers)
{
   result = Convert.ToSingle(number);
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                     number.GetType().Name, number,
                     result.GetType().Name, result);
}
// The example displays the following output:
//       Converted the Byte value 0 to the Single value 0.
//       Converted the Byte value 10 to the Single value 10.
//       Converted the Byte value 100 to the Single value 100.
//       Converted the Byte value 255 to the Single value 255.
Dim numbers() As Byte = { Byte.MinValue, 10, 100, Byte.MaxValue }
Dim result As Single

For Each number As Byte In numbers
   result = Convert.ToSingle(number)
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
                     number.GetType().Name, number, _
                     result.GetType().Name, result)
Next
' The example displays the following output:
'       Converted the Byte value 0 to the Single value 0.
'       Converted the Byte value 10 to the Single value 10.
'       Converted the Byte value 100 to the Single value 100.
'       Converted the Byte value 255 to the Single value 255.

ToSingle(Boolean)

将指定的布尔值转换为等效的单精度浮点数。Converts the specified Boolean value to the equivalent single-precision floating-point number.

public:
 static float ToSingle(bool value);
public static float ToSingle (bool value);
static member ToSingle : bool -> single
Public Shared Function ToSingle (value As Boolean) As Single

参数

value
Boolean

要转换的布尔值。The Boolean value to convert.

返回

如果 valuetrue,则为数字 1;否则,为 0。The number 1 if value is true; otherwise, 0.

示例

下面的示例将布尔值truefalse值转换Single为值。The following example converts the Boolean values true and false to Single values.

bool[] flags = { true, false };
float result;

foreach (bool flag in flags)
{
   result = Convert.ToSingle(flag);
   Console.WriteLine("Converted {0} to {1}.", flag, result);
}
// The example displays the following output:
//       Converted True to 1.
//       Converted False to 0.      
Dim flags() As Boolean = { True, False }
Dim result As Single

For Each flag As Boolean In flags
   result = Convert.ToSingle(flag)
   Console.WriteLine("Converted {0} to {1}.", flag, result)
Next
' The example displays the following output:
'       Converted True to 1.
'       Converted False to 0.      

ToSingle(Int64)

将指定的 64 位带符号整数的值转换为等效的单精度浮点数。Converts the value of the specified 64-bit signed integer to an equivalent single-precision floating-point number.

public:
 static float ToSingle(long value);
public static float ToSingle (long value);
static member ToSingle : int64 -> single
Public Shared Function ToSingle (value As Long) As Single

参数

value
Int64

要转换的 64 位带符号整数。The 64-bit signed integer to convert.

返回

一个等于 value 的单精度浮点数。A single-precision floating-point number that is equivalent to value.

示例

下面的示例将一个长整数数组中的每个元素转换Single为一个值。The following example converts each element in an array of long integers to a Single value.

long[] numbers = { Int64.MinValue, -903, 0, 172, Int64.MaxValue};
double result;

foreach (long number in numbers)
{
   result = Convert.ToDouble(number);
   Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", 
                     number.GetType().Name, number, 
                     result.GetType().Name, result);

}
// The example displays the following output:
//    Converted the Int64 value '-9223372036854775808' to the Single value -9.223372E+18.
//    Converted the Int64 value '-903' to the Single value -903.
//    Converted the Int64 value '0' to the Single value 0.
//    Converted the Int64 value '172' to the Single value 172.
//    Converted the Int64 value '9223372036854775807' to the Single value 9.223372E+18.
Dim numbers() As Long = { Int64.MinValue, -903, 0, 172, Int64.MaxValue}
Dim result As Single

For Each number As Long In numbers
   result = Convert.ToSingle(number)
   Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", _
                     number.GetType().Name, number, _
                     result.GetType().Name, result)

Next
' The example displays the following output:
'    Converted the Int64 value '-9223372036854775808' to the Single value -9.223372E+18.
'    Converted the Int64 value '-903' to the Single value -903.
'    Converted the Int64 value '0' to the Single value 0.
'    Converted the Int64 value '172' to the Single value 172.
'    Converted the Int64 value '9223372036854775807' to the Single value 9.223372E+18.

适用于