- 一、数据类型概述
- 数据:计算机能够处理数值、文字、声音、图形、图像等信息,均称为数据。
- 数据类型:根据数据描述信息的含义,将数据分为不同的种类,对数据种类的区分规定,称为数据类型。数据类型的不同,则在内存中的存储结构也不同,占用空间也不同
- VB的基本数据类型:
- 数值型数据 (主要数据类型) 日期型 字节型
- 货币型 逻辑型 字符串型 对象型 变体型
- 二、 数值数据类型
- 数值类型分为整数型和实数型两大类。
- 1、整数型
- 整数型是指不带小数点和指数符号的数。
- 按表示范围整数型分为:整型、长整型
- (1)整型(Integer,类型符%)
- 整型数在内存中占两个字节(16位)
- 十进制整型数的取值范围:-32768 ~ +32767
- 例如:15,-345,654%都是整数型。而45678%则会发生溢出错误。
- (2)长整型(Long,类型符&)
- 长整数型在内存中占4个字节(32位)。
- 十进制长整型数的取值范围:
- -2147483648 ~ +2147483647
- 例如:123456,45678&都是长整数型。
- 2、实数型(浮点数或实型数)
- 实数型数据是指带有小数部分的数。
- 注意:数12和数12.0对计算机来说是不同的,前者是整数(占2个字节),后者是浮点数(占4个字节)
- 实数型数据分为浮点数和定点数。
- 浮点数由三部分组成:符号,指数和尾数。
- 在VB中浮点数分为两种:
- 单精度浮点数( Single )
- 双精度浮点数( Double )
- (1)单精度数(Single,类型符!)
- 在内存中占4个字节(32位),,有效数字:7位十进制数
- 取值范围:负数 -3.402823E+38 ~ -1.401298E-45
- 正数 1.401298E-45 ~ 3.402823E+38
- 在计算机程序里面不能有上标下标的写法,所以乘幂采用的是一种称为科学计数法的表达方法
- 这里用E或者e表示10的次方(E/e大小写都可以)
- 比如:1.401298E-45表示1.401298的10的负45次方
- vb里面可以这样表示:8.96E-5
- 例:21e5(正号省略)表示:
- 21乘以10的5次方的一个单精度数
- (2) 双精度数(Double,类型符#)
- Double类型数据在内存中占用8个字节(64位)
- Double型可以精确到15或16位十进制数,即15或16位有效数字。
- 取值范围:
- 负数: –1.797693134862316D+308 ~ -4.94065D-324
- 正数: 4.94065D-324 ~ 1.797693134862316D+308
- 比如17.88D5,表示它是一个双精度数,表示17.88乘以10的5次方
- 这里用D来表示10的次方
- 二、 货币型(Currency,类型符@)
- 主要用来表示货币值,在内存中占8个字节(64位);
- 整数部分为15位,可以精确到小数点后4位,第五位四舍五入;属于定点实数
- 货币型数据的取值范围:
- -922337203685447. 5808 ~ 922337203685447. 5807
- 跟浮点数的区别:小数点后的位数是固定的,4位
- 例如:3.56@ 、 65.123456@都是货币型。
- 三、 字节型(Byte,无类型符)
- 一般用于存储二进制数。
- 字节型数据在内存中占1个字节(8位)。
- 字节型数据的取值范围:0 ~ 255
- 四、 日期型(Date)
- 在内存中占用8个字节,以浮点数形式存储。
- 日期型数据的日期表示范围为:
- 100年1月1日~9999年12月31日
- 日期型数据的时间表示范围为:
- 00:00:00 ~ 23:59:59
- 用#括起来放置日期和时间,允许用各种表示日期和时间的格式。
- 日期可以用“/”、“,”、“-”分隔开,可以是年、月、日,也可以是月、日、年的顺序。时间必须用“:”分隔,顺序是:时、分、秒。
- 例:
- #09/10/2000# 或 #2000-09-12#
- #08:30:00 AM#
- #09/10/2000 08:30:00 AM#
- 例:
- Dim mylab As Date
- mylab = #9/3/2001 11:35:00 AM#
- Time = mylab
- 在VB中会自动转换成mm/dd/yy(月/日/年)的形式。
- 五、 逻辑型(Boolean)
- 逻辑型数据在内存中占2个字节。
- 逻辑型数据只有两个可能的值:
- True(真) False(假)
- 若将逻辑型数据转换成数值型,则:
- True(真)为 –1 False(假)为 0
- 当数值型数据转换为Boolean型数据时:
- 非0的数据转换为true,0为fasle。
- 六、字符串( String ,类型符$)
- 字符串是一个字符序列,必须用双引号括起来
- 说明:
- 双引号为分界符,输入和输出时并不显示。
- 字符串中包含字符的个数称为字符串长度。
- 长度为零的字符串称为空字符串,比如“”,引号里面没有任何内容
- 字符串中包含的字符区分大小写。
- 字符串可分为变长字符串和定长字符串两种。
- (1).变长字符串(长度为字符串长度)
- 例:dim a as string
- a="123" a="456789“
- (2).定长字符串(长度为规定长度)
- 对于定长字符串,当字符长度低于规定长度,即用空格填满,当字符长度多于规定长度,则截去多余的字符。
- 例:dim a as string * 10
- 七、对象数据类型(Object )
- 对象型数据在内存中占用4个字节。用以引用应用程序中的对象。
- 八、变体数据类型(Variant )
- 变体数据类型是一种特殊数据类型,具有很大的灵活性,可以表示多种数据类型,其最终的类型由赋予它的值来确定。
- 九、用户自定义类型
- 如果我想同时记录一个学生的学号、姓名、性别、总分,那么我可以用自定义类型。
- 用户自定义类型特点:这种类型的数据由若干个不同类型的基本数据组成。
- 自定义类型由Type语句来实现:
- 格式:Type 自定义类型名
- 元素名1 As 类型名
- 元素名2 As 类型名
- ……
- 元素名n As 类型名
- End Type
- Type是语句定义符,告诉VB现在要定义一个数据类型,是vb的关键字;其后的自定义类型名是要定义的该数据类型的名称,由用户确定;end type表示类型定义结束;自定义类型名是组成该数据类型的变量的名称
- 例:
- Type Student
- Num As Long ‘学号
- Name As String*10 ‘姓名,用长度为10的定长字符串来存储
- Sex As String*5 ‘性别,用长度为5的定长字符串来存储
- score As Single ‘得分,用单精度数来存储
- End Type
- 一般在标准模块里面定义,如果只想在窗体里面定义,则前面必须加上Private,表示该类型只对本窗体有效,其他窗体无法定义该类型的变量。
- 定义了Student类型之后,我们就可以定义Student类型的变量了,比如: Dim Stu As Student