数值型数据类型 (Visual Basic)
Visual Basic 提供了几种“数值数据类型”,以各种表示形式来处理数字。 “整型”仅表示整数(正数、负数和零);“非整型”表示同时带有整数部分和小数部分的数字。
有关 Visual Basic 数据类型的对照表,请参见数据类型摘要 (Visual Basic)。
整型数值类型
“整型数据类型”是只表示整数(没有小数部分)的数据类型。
“有符号”整型数据类型有 SByte 数据类型 (Visual Basic)(8 位)、Short 数据类型 (Visual Basic)(16 位)、Integer 数据类型 (Visual Basic)(32 位)及 Long 数据类型 (Visual Basic)(64 位)。 如果某个变量总是存储整数而不是小数,则将其声明为以上类型之一。
“无符号”整型有 Byte 数据类型 (Visual Basic)(8 位)、UShort 数据类型 (Visual Basic)(16 位)、UInteger 数据类型(32 位)及 ULong 数据类型 (Visual Basic)(64 位)。 如果某个变量包含二进制数据或未知种类的数据,则将其声明为这些类型之一。
性能
用整型进行算术运算比用其他数据类型快。 Visual Basic 中的 Integer 和 UInteger 类型的算术运算速度最快。
大整数
如果您需要存储的整数比 Integer 数据类型所能存储的要大,可用 Long 数据类型代替。 Long 变量可以存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的数字。 Long 的运算速度比 Integer 稍微慢一些。
如果需要更大的值,可以使用Decimal 数据类型 (Visual Basic)。 如果不使用任何小数位数,Decimal 变量可存储从 -79,228,162,514,264,337,593,543,950,335 到 79,228,162,514,264,337,593,543,950,335 的数字。 但是,Decimal 数字的运算速度比其他任何数值数据类型慢得多。
小整数
如果不需要完整范围的 Integer 数据类型,则可以使用 Short 数据类型,它包含从 -32,768 到 32,767 的整数。 SByte 数据类型包含从 -128 到 127 的最小整数范围。 如果有大量的变量包含小整数,公共语言运行时有时可以更加有效地存储 Short 和 SByte 变量以节省内存使用。 但是,Short 和 SByte 的运算速度比 Integer 稍慢一些。
无符号整数
如果您知道您的变量永远不需要存储负数,可以使用“无符号类型” Byte、UShort、UInteger 和 ULong。 这些数据类型所能存储的正整数是相应的有符号类型(SByte、Short、Integer 和 Long)的两倍。 就性能而言,每个无符号类型与相应的有符号类型的效率一样。 特别是,UInteger 与 Integer 都被认为是所有基本数值数据类型中最高效的。
非整型数值类型
“非整型数据类型”是表示同时带有整数部分和小数部分的数字的类型。
非整型数值数据类型有 Decimal(128 位定点)、Single 数据类型 (Visual Basic)(32 位浮点)和 Double 数据类型 (Visual Basic)(64 位浮点)。 它们都是有符号类型。 如果某个变量可以包含小数,则将其声明为这些类型之一。
Decimal 不是浮点数据类型。 Decimal 数字具有一个二进制整数值和一个用于指定值的哪一部分是小数部分的整数比例因子。
浮点(Single 和 Double)数字的范围比 Decimal 数字大,但可能会导致四舍五入错误。 浮点类型支持的有效位比 Decimal 支持的少,但它可以表示更大的值。
非整型数值可表示为 mmmEeee,其中 mmm 是“尾数”(有效位数),eee 是“指数”(10 的次幂)。 在非整型中,Decimal 的最大正值为 7.9228162514264337593543950335E+28,Single 的最大正值为 3.4028235E+38,Double 的最大正值为 1.79769313486231570E+308。
性能
Double 是小数数据类型中效率最高的,因为目前各平台的处理器都是以双精度来进行浮点运算。 但是,使用 Double 的运算不如使用整型(如 Integer)的运算速度快。
小量值
对于具有最小可能量值的数字(最接近 0),Double 变量可以存储最小 -4.94065645841246544E-324 的负值和最大 4.94065645841246544E-324 的正值。
小小数
如果不需要完整范围的 Double 数据类型,则可以使用 Single 数据类型,它包含从 -3.4028235E+38 到 3.4028235E+38 的浮点数。 Single 变量的负值最小量值为 -1.401298E-45,正值最小量值为 1.401298E-45。 如果有大量的变量存储小浮点数,公共语言运行时有时可以更加高效地存储 Single 变量以节省内存使用。
请参见
任务
如何:使用无符号类型优化正整数的存储 (Visual Basic)
如何:调用采用无符号类型的 Windows 函数 (Visual Basic)
如何:在变量中保存最多有效位数 (Visual Basic)