VB比较常用的变量
意思也要,最好回答最好明了
意思也要,最好回答最好明了
答案:vb中,以下变量类型
1,数字型变量(numeric)
2,字符串型变量(string)
3,日期型变量(date)
4,对象型变量(object)
5,变体型变量(variant)
这几个vb变量类型中,最最主要的就是前面两个,数字型变量和字符串型变量.意思很简单,数字型可以用来存放数字,字符串型存放文本.
下面就来详细介绍这几种变量.
1.数字型
数字型变量有多种类型,在咱们的vb里,有3中数字数据类型
1;整形
2;浮点型
3;货币型
其中,整形数据还可以分为整形(integer)和长整形(long).浮点型还可以分为单精度型(single)和双精度型(double)
数字型变量分这么详细,其实是为了提高程序的运行效率.如果在程序中大量使用双精度型,会直接影响到程序的运行速度,但它的精度提高了.前面咱们知道了变量的声明方式,这样我们就可以声明不同类型的变量了!
dim z_ge as integer
dim z_D as long
.....
等等等等,都是这样的声明方式但要注意的是,dim语句可以在一条语句中声明多个变量,但必须注意变量声明的格式!否则将的不到正确结果!
例如
dim z_ge, z_zf as integer
这本意是将两个变量声明为一种格式,但这是错误的!
我们可以用typename()函数,验证上面的变量类型
声明完变量后,我们这样检查
debug.print "z_ge is " & typename(z_ge)
运行后,在那个"立即"窗口中,可以看到结果
z_ge is empty
只有最后的那个变量,被声明为integer,你可以多声明几个,多测试几次就知道了!
正确的声明方法是
dim z_ge as integer, z_zf as integer
不同的数字型,所表示的范围是不同的,Integer 存放-32,768 到 32,767
Long 存放-2,147,483,648 到 2,147,483,647
Single 存放 负数:-3.402823E38 到 -1.401298E-45;正数:1.401298E-45 到 3.402823E38
Double 存放 负数: -1.79769313486232E308 到 - 4.94065645841247E-324;
正数:4.94065645841247E-324 到 1.79769313486232E308 之间的数
Currency 存放 从 -922,337,203,685,477.5808到 922,337,203,685,477.5807
是不是很high呀!
就运算速度来说integer是最快的!不过也要根据实际情况而决定!如果变量要包括小数部分,那样可以声明为single ,double, currency这几种类型.single和double主要差别不是它们的数值范围,而在于表示数值的精度.例如,用single来表示1除以3,结果是0.3333333如果我们采用double,则它的结果为 0 .333333333333333 我们在实际运用中,这可以灵活运用!
currency可以存放定点数,它支持小数前面15位和后面4位.
这里需要我们注意的是,不数字类型在机器内部表示不同的格式.所有的数值都要在在一定位数进行结尾.比如我们刚才运行的1除以3 结果是0.3333333……无穷多个3.而在机器中,即使把所有的内存用光,也是要截尾的.
我们看看下面的程序
Private Sub Form_Load()
Dim a As Single
a = 1 / 3
Debug.Print a
End Sub
运行后,在"立即"框中,看到的结果是0. 3333333
如果我们再让它乘上10000000
它的结果就成了3333334
显然,它的结果不是我们期待的那样.也许我们对这些误差不是特别在意,但我们必须牢记:这种误差在以后的计算中是很有可能被逐步放大的!咱们已经初步理解vb中数字型变量了,下面再说说数字型变量的精度
同样,每一种数据类型都有它自己的精度,整数型数据精度不用我们太多的关注他.精度的概念再浮点数上体现的比较多!浮点数种整数部分越小,那它可以放置小数位数就越多,这是因为存放再数据的内存字节数都是一定的.
例如,我们用双精度double数据类型表示,则2除以3的结果为 0.666666666666667而200000除以3的结果用double类型表示则为66666.6666666667
因为vb只能用8个字节来存放这个数字,较大数字的有些字节要分配给整数部分,小数部分的字节数就越少.
如果我们需要尽可能高的精度的时候,有些控制精度的技巧是需要学习的.
1.调整数字的偏差量.如,我们在计算10000000~10000001之间的数的时候,我们可以先减去10000000让数字缩小到0~1之间,然后到运算结束后,再将结果加上10000000
2.尽量减少不必要的计算.在所做的各种运算里,如果涉及到很复杂的运算攻势,我们有必要对公式进行化简.来避免不必要的运算步骤(这也叫偷懒).例如,在计算c=a*b/a+a的时候,我们完全可以将公式写成c=b+a这样做就减少了不必要的误差.精度理解之后,下面学习一下byte数据类型
上面我们可以看出,数字型数据存放的最小占用内存是2个字节,并没有哪一种数字型数据是存放在单个字节种的.不过,在一些场合,假如要方位2进制文件的时候,需要对数据各个字节都进行访问,这时,byte类型就派上用场了...
byte数据类型可以表示0~255之间的整数.和其他的数字型数据声明的格式都是一样的.
dim a as byte
byte数据类型也可以用来做数字计算,但计算的数字,和结果必须控制在255这个数字以内.否则将会出现溢出错误(这是程序员最忌讳的)
例如以下代码
dim a as byte
dim b as byte
a=230
b=50
b=b+a
debug.print b
其结果是280,但这时就会出现溢出错误,因为280无发放置在1个字节中.不过,值得注意的是如果我们使用,msgbox a+b却可以显示正常的结果!
呵呵,vb有意思吧..
数据类型 | 类型名称 | 声明字符 | 所占字符(B) | 有效值 |
字节型 | Byte | 1 | 0-255 | |
布尔型 | Boolean | 2 | True或False | |
整型 | Integer | % | 2 | -32768~32767 、&H0~&HFFFF、&O0~&O177777 |
长整型 | Long | & | 4 | -2147483648~2147483647,小数部分四舍五入 |
单精度型 | Single | ! | 4 | 负数:-3.402823E38~-1.40298E-45 正数:1.401298E-45~3.402823E38 |
双精度型 | Double | # | 8 | 负数:正数: |
货币型 | Currency | @ | 8 | -922337203685477.5808~922337203685477.5807 |
日期型 | Date | 8 | January 1 100~December 31 9999 | |
变长字符串型 | String | $ | 字符串长度 | 0~大约20亿字节 |
定长字符串型 | String*size | size | 1~65535(64KB) | |
对象型 | Object | 4 | 任何对象的引用 | |
变体型(数值) | Variant | 16 | 任何数值,最大可达Double的范围 | |
变体型(字符) | Variant | 字符串长度 | 与可变长度字符串有相同的范围 |