Visual Basic 提供了多个 数字数据类型 ,用于处理各种表示形式的数字。 整型 类型仅表示整数(正数、负数和零), 非整数 类型表示整数和小数部分的数字。
有关显示 Visual Basic 数据类型的并排比较的表,请参阅 数据类型。
整型数值类型
整型数据类型 是指仅表示没有小数部分的数字。
有符号整型数据类型为 SByte 数据类型(8 位)、短数据类型(16 位)、整数数据类型(32 位)和长数据类型(64 位)。 如果变量始终存储整数而不是小数,请将其声明为这些类型之一。
无符号整型类型为字节数据类型(8 位)、UShort 数据类型(16 位)、UInteger 数据类型(32 位)和 ULong 数据类型(64 位)。 如果变量包含二进制数据或未知性质的数据,请将其声明为以下类型之一。
性能
算术运算使用整型类型比其他数据类型更快。 Visual Basic 中 Integer
和 UInteger
类型的算术运算最快。
大整数
如果需要保存大于数据类型可以保留的 Integer
整数,则可以改用 Long
数据类型。
Long
变量可以保存从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的数字。
Long
的算术运算比 Integer
的算术运算更慢。
如果需要更大的值,可以使用 十进制数据类型。 您可以将数字从 -79,228,162,514,264,337,593,543,950,335 到 79,228,162,514,264,337,593,543,950,335 保存到 Decimal
变量中,如果不使用任何小数位。 但是,与 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 位固定点)、 单数据类型 (32 位浮点)和 双数据类型 (64 位浮点)。 它们都是有符号类型。 如果变量可以包含分数,请将其声明为以下类型之一。
Decimal
不是浮点数据类型。
Decimal
数字有一个二进制整数值和一个整数缩放因子,用于指定该值的哪个部分是小数部分。
可以将 Decimal
变量用于货币值。 优点是值的精度。 数据类型 Double
速度更快,需要更少的内存,但会受到舍入错误的影响。 数据类型 Decimal
将完全准确性保留到 28 位小数位数。
浮点数(Single
和 Double
)数字的范围比 Decimal
数字大,但可能会受到舍入错误。 浮点类型支持的有效位数少于 Decimal
但可以表示更大数量级的值。
非整数值可以表示为 mmmEeee,其中 mmm 是 mantissa (有效数字),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
变量并节省内存消耗。