区分在于类型的定义,使用则带有主管和客观很多成分
integer是有符号短整型,2个字节,能表示范围自然是-32768到32767
long是长整型。4个字节,能表示大约-20亿到20亿
以上都是表示整数
single是单精度浮点型(就是带有小数点),4个字节
double是双精度浮点型,8个字节,这两种存储方式比较复杂一点
string是字符串,其实不是真正意义的基本数据类型,它是由一定数量的字节(字符或双字符)组成的一维数组,要理解什么是字符串,就要知道字符编码
至于使用,要根据算法而定,算法其实就是实现方法。而算法取决于实际功能要求,比如你要统计会员数,如果用integer你就只能有32767个会员,再多你的系统就崩溃了。
此外有些vb约定的内置函数(包括api)使用的参数是特定的,那么你只能使用这种类型,
当然,用byval传值vb会自动转换数据类型,比如
private
sub
command1_click(index
as
integer)
'控件数组的索引必须是integer
list1.list(1)
=
"abc"
'listbox的项目索引必须是integer
text1.text
=
space(10)
'space参数是long
if
getdesktopwindow()
<>
me.hwnd
then
'窗口句柄是long
我知道你有很多疑问,你可以直接追问,但是我先跟你说,要成为优秀的程序员,必须经过艰苦的挣扎,勤奋学习,善于总结,勤于思考。其实无论什么事情,要比别人功夫深,就要比别人多下苦功夫
数值类型分为整数型和实数型两大类。
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