VB问题,高手进
vb吧
全部回复
仅看楼主
level 8
tbzp666
楼主
程序1
For i = 1.05 To 1.95 Step 0.1
Print i
Next i
程序2
For i = 10.5 To 19.5
Print i
Next i
为什么程序2运行10次循环,而程序1运行9次循环?我觉得都是10次,但程序结果如下
2021年11月09日 03点11分
1
level 13
隨風🍁缒夢
For i = 1.05 To 1.95! Step 0.1
Print i
Next i
这样就是10次了
2021年11月09日 03点11分
2
level 8
tbzp666
楼主
为什么程序1 是这样呢,我不是要得到结果,我是要得到结果的原因
2021年11月09日 04点11分
3
tbzp666
浮点数和精度的问题,两个看似相等的值实际上可能不精确相等。浮点数是一个近似值。
2023年11月09日 07点11分
level 15
初音✨七奈
原因就是浮点数有误差,0.1在计算机当中并不是一个能够精确表示的数字,0.1*10和1并不相等,这样你的第一段程序循环到最后时,得到的1.95和你写在代码中的常数1.95并不相等,而是偏大了一些,最后的1.95这次循环就不执行了;如果这个1.95是偏小的,那么最后一次循环倒是也能执行(这也是把常数1.95改个类型可以多执行一次的原因),不过一般还是不推荐循环变量用浮点数类型
2021年11月09日 06点11分
4
初音✨七奈
楼主拜托回来给个回复好么?有时间去回答别人的陈年老问题,却没时间解决自己的问题?
2021年11月09日 06点11分
tbzp666
谢谢,今天上午运行程序时突然遇到的问题,以前没有发现,初音大大很闲啊
2021年11月09日 06点11分
level 11
璐村惂鐢ㄦ埛_0748V5Z馃惥
循环控制,最好使用整形或者长整型
需要的小数,可以在循环内计算
唯一的缺点就是循环变量的含义不太清晰
2021年11月11日 01点11分
5
tbzp666
请教问题
2021年11月11日 13点11分
璐村惂鐢ㄦ埛_0748V5Z馃惥
@tbzp666
你说
2021年11月13日 00点11分
level 8
tbzp666
楼主
这个问题是我在考查Round()函数取值问题遇到的
Round说的是四舍六入五留双。不太懂这个问题,我一般把它当做四舍五入函数来算
2021年11月11日 12点11分
6
初音✨七奈
所谓“四舍六入五留双”,对于一般的情况就是四舍五入,特殊情况举几个例子你就明白了:比如2.5保留整数的结果为2,3.5的结果则是4;也就是说,被舍入的部分如果只有一位5,要使舍入之后的结果末位为偶数,即为“留双”
2021年11月11日 13点11分
tbzp666
@初音✨七奈
谢谢大神
2021年11月11日 14点11分
level 8
tbzp666
楼主
再问大佬们一个问题
Const n = 10
Private Sub Command1_Click()
Const n = 20
Print n
End Sub
Private Sub Command2_Click()
Print n
End Sub
为什么程序可以执行
运行命令按钮1结果是20
运行命令按钮2结果是10
不是说n的范围在模块中有效么
const 不能再改变符号常量的值么
2021年11月11日 13点11分
7
初音✨七奈
常量跟变量一样,也是有作用域的,分为模块级常量和过程级常量,在不同的作用域范围内是可以定义同名的常量的(或者也可以让常量和变量同名)
2021年11月11日 13点11分
level 8
tbzp666
楼主
好像明白了,要精确到第n位,要看第n+1位的数,
第n+1位的数为5,则看第n位上的数,
若第n位上的数为奇数,则第n位上的数+1;
若第n位上的数为偶数,则第n位上的数不变,是这个意思么 回复 初音
七奈
2021年11月11日 14点11分
8
初音✨七奈
如果第n+1位的数为5,并且这个5后面没有数字,则看第n位上的数;如果这个5后面还有数字,那么就都是进1,比如2.51取整结果为3(所以“四舍六入五留双”这个说法其实不算准确)
2021年11月11日 14点11分
tbzp666
@初音✨七奈
谢谢大神,我明白了 Round(2.51) = 3,Round(2.5) = 2, Round(2.55, 1) = 2.5, Round(2.45, 1) = 2.4
2021年11月12日 00点11分
初音✨七奈
@tbzp666
Round(2.55, 1) 应该是2.6,其他都对
2021年11月12日 02点11分
吧务
level 15
放飞希望,追逐梦想
误差问题造成的
2021年11月12日 13点11分
9
1