注册 登录
编程论坛 VB6论坛

关于 VB 的数据运算

tyl63390445 发布于 2014-12-05 14:40, 620 次点击
Dim d As Integer
  d = n / 2
  d = d - 1

 Dim d As Integer
  d = n / 2 -1
n的至为7时算出来的 d不一样  这是 为什么?
7 回复
#2
xzlxzlxzl2014-12-05 15:43
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在算数运算中是四舍五入取整的。
#3
txxb2014-12-05 17:00
既然有除不尽的数出现,就不要用整形数。
#4
zhengang10262014-12-05 17:25
回复 2 楼 xzlxzlxzl
请问版主,为何在将第一句改为d=4.6时,就会得出
 d=d-1=4
 d=4.6-1=4
既然是四舍五入,d=4.5、 d=4.6为啥不一样?

#5
xzlxzlxzl2014-12-05 19:36
仔细找了下,答案如下:
vb将浮点数赋值给整数时,会自动执行强制类型转换,类似于执行cint函数,该函数会对小数部分进行四舍五入取整,对刚好是0.5的小数取整的原则是四舍五入到最近的偶数,如cint(0.5)=0,cint(1.5)=2,cint(2.5)=2,cint(3.5)=4,大概就这么回事了,vb对恰好小数部分为0.5的四舍五入就这样干的。
#6
smart30002014-12-05 20:37
因为你把d定义为Integer
当n为奇数时,n/2是小数,所以建议你不要把n定义为Integer
我不知道你这段程序是想达到什么目的
#7
xzlxzlxzl2014-12-05 21:12
回复 6 楼 smart3000
你这算什么回答?他就是要探究定义为integer为什么会产生这种结果。
#8
tyl633904452014-12-08 16:53
回复 4 楼 zhengang1026
原来是这样啊  谢谢! 版主! 我还以为和数学的 四舍五入一样呢!
1