信息
您所需的主题如下所示。但此主题未包含在此库中。

Single 结构

2013/12/13

表示单精度浮点数。

Namespace:  System
程序集:  mscorlib(位于 mscorlib.dll 中)

public struct Single : IComparable, IComparable<float>, 
	IConvertible, IEquatable<float>, IFormattable

Single 类型公开以下成员。

  名称说明
公共方法CompareTo(Object)将此实例与指定对象进行比较,并返回一个整数,该整数指示此实例的值是大于、小于还是等于指定对象的值。
公共方法CompareTo(Single)将此实例与指定的单精度浮点数进行比较,并返回一个整数,该整数指示此实例的值是大于、小于还是等于指定的单精度浮点数的值。
公共方法Equals(Object)返回一个值,该值指示此实例是否等于指定的对象。 (重写 ValueType.Equals(Object)。)
公共方法Equals(Single)返回一个值,该值指示此实例和指定的 Single 对象是否表示相同的值。
受保护的方法Finalize允许 Object 在垃圾回收器回收该对象之前尝试释放资源并执行其他清理操作。 (从 Object 继承。)
公共方法GetHashCode返回此实例的哈希代码。 (重写 ValueType.GetHashCode()。)
公共方法GetType获取当前实例的 Type (从 Object 继承。)
公共方法GetTypeCode返回值类型 SingleTypeCode
公共方法静态成员IsInfinity返回一个值,该值指示指定数字是计算为负无穷大还是正无穷大。
公共方法静态成员IsNaN返回一个值,该值指示指定数字是否计算为非数字 (NaN)。
公共方法静态成员IsNegativeInfinity返回一个值,该值指示指定数字是否计算为负无穷大。
公共方法静态成员IsPositiveInfinity返回一个值,该值指示指定数字是否计算为正无穷大。
受保护的方法MemberwiseClone创建当前 Object 的浅表副本。 (从 Object 继承。)
公共方法静态成员Parse(String)将数字的字符串表示形式转换为它的等效单精度浮点数字。
公共方法静态成员Parse(String, NumberStyles)将具有指定样式的数字的字符串表示形式转换为它的等效单精度浮点数字。
公共方法静态成员Parse(String, IFormatProvider)将具有指定区域性特定格式的数字的字符串表示形式转换为它的等效单精度浮点数字。
公共方法静态成员Parse(String, NumberStyles, IFormatProvider)将具有指定样式和区域性特定格式的数字的字符串表示形式转换为它的等效单精度浮点数字。
公共方法ToString()将此实例的数值转换为其等效的字符串表示形式。 (重写 ValueType.ToString()。)
公共方法ToString(IFormatProvider)使用指定的区域性特定格式设置信息,将此实例的数值转换为它的等效字符串表示形式。
公共方法ToString(String)使用指定的格式,将此实例的数值转换为它的等效字符串表示形式。
公共方法ToString(String, IFormatProvider)使用指定的格式和区域性特定格式设置信息,将此实例的数值转换为它的等效字符串表示形式。
公共方法静态成员TryParse(String, Single)将数字的字符串表示形式转换为它的等效单精度浮点数字。一个指示转换是否成功的返回代码。
公共方法静态成员TryParse(String, NumberStyles, IFormatProvider, Single)将具有指定样式和区域性特定格式的数字的字符串表示形式转换为它的等效单精度浮点数字。一个指示转换是否成功的返回代码。
返回顶部

  名称说明
公共运算符静态成员Equality返回一个值,该值指示两个指定的 Single 值是否相等。
公共运算符静态成员GreaterThan返回一个值,该值指示指定的 Single 值是否大于另一个指定的 Single 值。
公共运算符静态成员GreaterThanOrEqual返回一个值,该值指示指定的 Single 值是否大于或等于另一个指定的 Single 值。
公共运算符静态成员Inequality返回一个值,该值指示两个指定的 Single 值是否不相等。
公共运算符静态成员LessThan返回一个值,该值指示指定的 Single 值是否小于另一个指定的 Single 值。
公共运算符静态成员LessThanOrEqual返回一个值,该值指示指定的 Single 值是否小于或等于另一个指定的 Single 值。
返回顶部

  名称说明
公共字段静态成员Epsilon表示大于零的最小正 Single 值。此字段为常量。
公共字段静态成员MaxValue表示 Single 的最大可能值。此字段为常量。
公共字段静态成员MinValue表示 Single 的最小可能值。此字段为常量。
公共字段静态成员NaN表示非数字 (NaN)。此字段为常量。
公共字段静态成员NegativeInfinity表示负无穷。此字段为常量。
公共字段静态成员PositiveInfinity表示正无穷。此字段为常量。
返回顶部

  名称说明
显式接口实现私有方法IConvertible.ToBoolean基础结构。 有关此成员的说明,请参见 IConvertible.ToBoolean
显式接口实现私有方法IConvertible.ToByte基础结构。 有关此成员的说明,请参见 IConvertible.ToByte
显式接口实现私有方法IConvertible.ToChar基础结构。 不支持此转换。尝试使用此方法将引发 InvalidCastException
显式接口实现私有方法IConvertible.ToDateTime基础结构。 不支持此转换。尝试使用此方法将引发 InvalidCastException
显式接口实现私有方法IConvertible.ToDecimal基础结构。 有关此成员的说明,请参见 IConvertible.ToDecimal
显式接口实现私有方法IConvertible.ToDouble基础结构。 有关此成员的说明,请参见 IConvertible.ToDouble
显式接口实现私有方法IConvertible.ToInt16基础结构。 有关此成员的说明,请参见 IConvertible.ToInt16
显式接口实现私有方法IConvertible.ToInt32基础结构。 有关此成员的说明,请参见 IConvertible.ToInt32
显式接口实现私有方法IConvertible.ToInt64基础结构。 有关此成员的说明,请参见 IConvertible.ToInt64
显式接口实现私有方法IConvertible.ToSByte基础结构。 有关此成员的说明,请参见 IConvertible.ToSByte
显式接口实现私有方法IConvertible.ToSingle基础结构。 有关此成员的说明,请参见 IConvertible.ToSingle
显式接口实现私有方法IConvertible.ToType基础结构。 有关此成员的说明,请参见 IConvertible.ToType
显式接口实现私有方法IConvertible.ToUInt16基础结构。 有关此成员的说明,请参见 IConvertible.ToUInt16
显式接口实现私有方法IConvertible.ToUInt32基础结构。 有关此成员的说明,请参见 IConvertible.ToUInt32
显式接口实现私有方法IConvertible.ToUInt64基础结构。 有关此成员的说明,请参见 IConvertible.ToUInt64
返回顶部

Single 值类型表示一个值介于 -3.402823e38 和 +3.402823e38 之间的单精度 32 位数字,以及正零或负零、PositiveInfinityNegativeInfinity 和非数字 (NaN)。

Single 符合二进制浮点算法的 IEC 60559:1989 (IEEE 754) 标准。

Single 为比较此类型的实例,将实例的值转换为它的字符串表示形式以及将数字的字符串表示形式转换为此类型的实例提供了相应的方法。

使用浮点数

在执行二进制运算时,如果一个操作数为浮点类型(SingleDouble),那么另一个操作数应当为整数类型或浮点类型。此运算计算如下:

  • 如果其中一个操作数为整数类型,那么该操作数将被转换为另一个操作数所属的浮点类型。

  • 然后,如果任意一个操作数为 Double,则另一个操作数将被转换为 Double,并且至少使用 Double 的范围和精度执行运算。对于数值运算,结果的类型为 Double

  • 否则,将至少使用 Single 类型的范围和精度执行运算,而且对于数值运算,结果的类型为 Single

浮点运算符(包括赋值运算符)不会引发异常。在异常情况下,浮点运算的结果为零、无穷或 NaN,如下所述:

  • 如果浮点运算的结果对于目标格式来说太小,则运算的结果为零。

  • 如果浮点运算结果的数值对于目标格式来说太大,则运算的结果为 PositiveInfinityNegativeInfinity(具体取决于结果的符号)。

  • 如果浮点运算无效,则运算的结果为 NaN

  • 如果浮点运算的一个或两个操作数为 NaN,则运算的结果为 NaN

浮点值和精度损失

请记住,浮点数只能近似于十进制数字,浮点数的精度决定了浮点数近似于十进制数字的精确程度。默认情况下,Single 值只包含 7 位精度,但内部维护的最大精度是 9 位。浮点数的精度有几种结果:

  • 特定精度下看似相等的两个浮点数可能并不相等,因为它们的最小有效位数不同。

  • 由于浮点数可能无法精确近似于十进制数,如果使用十进制数,则使用浮点数的数学或比较运算可能不会产生相同的结果。

  • 如果涉及浮点数,值可能不往返。值的往返是指,某个运算将原始浮点数转换为另一种格式,而反向运算又将转换后的格式转换回浮点数,且最终浮点数与原始浮点数相等。由于一个或多个最低有效位在转换中丢失或更改,往返可能会失败。

接口实现

此类型实现接口 IComparableIComparable<T>IFormattableIConvertibleIEquatable<T>。使用 Convert 类进行转换,而不是使用此类型的 IConvertible 显式接口成员实现。

Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

此类型的所有成员都是线程安全的。看似修改了实例状态的成员实际上返回一个用新值初始化的新实例。正如对任何其他类型一样,对于包含此类型的实例的共享变量,也必须通过锁定来保护对其进行的读写,以保证实现线程安全。

显示: