实型变量中可以存放整形数_c语言中的整型变量是什么意思

实型变量中可以存放整形数_c语言中的整型变量是什么意思vb中,以下变量类型1,数字型变量(numeric)2,字符串型变量(string)3,日期型变量(date)4,对象型变量(object)5,变体型变量(variant)这几个vb变量类型中,最最主要的就是前面两个,数字型变量和字符串型变量.意思很简单,数字型可以用来存放数字,字符串型存放文本.下面就来详细介绍这几种变量.1.数字型数字型变量有多种类型,在咱们的vb里,有3中数字数据类型1;整形...

b365a4d18a9ddbba4dbad973bd32f001.png

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有意思吧..

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

本文来源勃恩泽,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/222586
0
 

发表评论