Single 结构

表示一个单精度浮点数字。

**命名空间:**System
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Structure Single
    Implements IComparable, IFormattable, IConvertible, IComparable(Of Single), _
    IEquatable(Of Single)
用法
Dim instance As Single
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public struct Single : IComparable, IFormattable, IConvertible, 
    IComparable<float>, IEquatable<float>
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public value class Single : IComparable, IFormattable, IConvertible, 
    IComparable<float>, IEquatable<float>
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class Single extends ValueType implements IComparable, IFormattable, 
    IConvertible, IComparable<float>, IEquatable<float>
JScript 支持使用结构,但不支持进行新的声明。

备注

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 位。浮点数的精度有几个结果:

  • 某个特定精度似乎相等的两个浮点数可能会因为其最低有效位不同而不相等。

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

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

接口实现

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

线程安全

此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

Single 成员
System 命名空间