c程序中整形变量只能存放整数实型变量只能存放浮点数_c语言合法的实型常量

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

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

◆◆

评论读取中….

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/213385.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 蚂蚁矿机linux系统文件,蚂蚁显卡矿机G2系统一键还原教程[通俗易懂]

    蚂蚁矿机linux系统文件,蚂蚁显卡矿机G2系统一键还原教程[通俗易懂]一、还原准备工作[ol]一台办公电脑(建议win7或以上系统,配置不限)一个可以格式化的U盘(最少8G,速度不限)下载UltraISO刻录软件《uiso9_cn.exe》至桌面下载《clonezilla-live-2117-11-29-03-img.iso》文件至桌面下载《checksum64.exe》至桌面双击打开checksum64.exe,把下载下来的ISO文件移动至软件中,点击选项-&gt…

  • HADOOP生态圈以及各组成部分的简介

    HADOOP生态圈以及各组成部分的简介HADOOP生态圈以及各组成部分的简介1各组件简介重点组件:HDFS:分布式文件系统MAPREDUCE:分布式运算程序开发框架HIVE:基于大数据技术(文件系统+运算框架)的SQL数据仓库工具HBASE:基于HADOOP的分布式海量数据库ZOOKEEPER:分布式协调服务基础组件Mahout:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库Oozie…

  • php小程序开发完整教程_微信小程序request封装

    php小程序开发完整教程_微信小程序request封装flyio:一个支持所有JavaScript运行环境的基于Promise的、支持请求转发、自动转换JSON、支持请求/响应拦截器、强大的http请求库。可以让您在多个端上尽可能大限度的实现代码复用。flyio官方文档flyio下载地址原生微信小程序中使用flyio请求,封装代码如下一、在src/utils下新建request.js文件,文件代码如下:/*flyio:一个支持所有JavaScript运行环境的基于Promise的、支持请求转发、强大的http请求库。可以让您在多

  • Java访问权限之 protected详解「建议收藏」

    Java访问权限之 protected详解「建议收藏」对于类的成员(包括成员变量和成员方法)而言,其能否被其他类所访问,取决于该成员的修饰词;而对于一个类而言,其能否被其他类所访问,也取决于该类的修饰词。在Java中,类成员访问权限修饰词有四类:private,无(包访问权限),protected和public,而其中只有包访问权限和public才能修饰一个类(内部类除外)。由于很多Java书籍对protected可见性的介绍都比较笼统,本文重点说明了protected关键字的可见性内涵。

    2022年10月29日
  • 1442. 形成两个异或相等数组的三元组数目[通俗易懂]

    1442. 形成两个异或相等数组的三元组数目[通俗易懂]给你一个整数数组 arr 。现需要从数组中取三个下标 i、j 和 k ,其中 (0 <= i < j <= k < arr.length) 。a 和 b 定义如下:a = arr[i] ^ arr[i + 1] ^ … ^ arr[j – 1]b = arr[j] ^ arr[j + 1] ^ … ^ arr[k]注意:^ 表示 按位异或 操作。请返回能够令 a == b 成立的三元组 (i, j , k) 的数目。示例 1:输入:arr = [2,3,1,6,7]

  • MySQL 日期和时间戳的转换 | 以及DATE_FORMAT()用法

    MySQL 日期和时间戳的转换 | 以及DATE_FORMAT()用法一、MySQL日期和时间戳的转换1.日期转时间戳selectUNIX_TIMESTAMP(‘2018-12-2512:25:00’);结果:15457119002.时间戳转日期:FROM_UNIXTIME(unix_timestamp)–unix_timestamp为时间戳selectFROM_UNIXTIME(1545711900);结果:2018-12-…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号