VB 得到随机数 问题,来看看。

来源:百度知道 编辑:UC知道 时间:2024/06/08 12:54:51
'设定随机数上限a,下线b
'点击Command1按钮获得在两者之间的随机数

Private Sub Command1_Click()
Dim a, b, c
a = Val(Text2.Text)
b = Val(Text1.Text)

c = Int((a–b + 1) * Rnd + b)

Text3.Text = c
End Sub

'为什么每次得到的c都等于b

c = Int((a–b + 1) * Rnd + b)

你这里面的减号 - 从哪找的,都不知道怎么输进去的

asc值为-22461

而且编译器居然没报错,应该是把a-b整个的当成一个变量了

改为正常的减号 -

Private Sub Command1_Click()
Randomize
Dim a, b, c
a = Val(Text2.Text)
b = Val(Text1.Text)
c = Int(Rnd * (a - b + 1) + b)
text3.Text = c
End Sub

如果你把按钮多点几遍就不同了。
但每次新运行程序第一个书都是一样的。
要排除这个问题,要添加随机数种子语句:
randomize()
在c=的上一行

2楼的是正确代码
因为要使用随机数时要获取一个初始种子 要有一个语句来完成初始
Randomize
Int(Rnd * (a - b + 1) + b)此为获取a,b间的随机数,想必你也知道。。
你的代码缺少的就是初始语句,加上那个就OK了

RND 是产生一个0到1之间的数,,,,,,应该再*10