| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 620 人关注过本帖
标题:关于 VB 的数据运算
只看楼主 加入收藏
tyl63390445
Rank: 1
等 级:新手上路
帖 子:11
专家分:5
注 册:2014-12-5
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:7 
关于 VB 的数据运算
Dim d As Integer
  d = n / 2
  d = d - 1

 Dim d As Integer
  d = n / 2 -1
n的至为7时算出来的 d不一样  这是 为什么?
2014-12-05 14:40
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:10 
dim d as integer
d=4.5
d=d-1=3
d=4.5-1=4

d=4.4
d=d-1=3
d=4.4-1=3
这大概是vb赋值取整和参与算术运算取整的方式不同造成的,实验的结果说明vb在算数运算中是四舍五入取整的。
2014-12-05 15:43
txxb
Rank: 2
等 级:论坛游民
帖 子:104
专家分:59
注 册:2014-10-8
收藏
得分:0 
既然有除不尽的数出现,就不要用整形数。
2014-12-05 17:00
zhengang1026
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:136
专家分:409
注 册:2013-2-6
收藏
得分:0 
回复 2 楼 xzlxzlxzl
请问版主,为何在将第一句改为d=4.6时,就会得出
 d=d-1=4
 d=4.6-1=4
既然是四舍五入,d=4.5、 d=4.6为啥不一样?

2014-12-05 17:25
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
仔细找了下,答案如下:
vb将浮点数赋值给整数时,会自动执行强制类型转换,类似于执行cint函数,该函数会对小数部分进行四舍五入取整,对刚好是0.5的小数取整的原则是四舍五入到最近的偶数,如cint(0.5)=0,cint(1.5)=2,cint(2.5)=2,cint(3.5)=4,大概就这么回事了,vb对恰好小数部分为0.5的四舍五入就这样干的。
2014-12-05 19:36
smart3000
Rank: 2
等 级:论坛游民
威 望:1
帖 子:14
专家分:12
注 册:2014-12-5
收藏
得分:0 
因为你把d定义为Integer
当n为奇数时,n/2是小数,所以建议你不要把n定义为Integer
我不知道你这段程序是想达到什么目的
2014-12-05 20:37
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
回复 6 楼 smart3000
你这算什么回答?他就是要探究定义为integer为什么会产生这种结果。
2014-12-05 21:12
tyl63390445
Rank: 1
等 级:新手上路
帖 子:11
专家分:5
注 册:2014-12-5
收藏
得分:0 
回复 4 楼 zhengang1026
原来是这样啊  谢谢! 版主! 我还以为和数学的 四舍五入一样呢!
2014-12-08 16:53
快速回复:关于 VB 的数据运算
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.061660 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved