产生0~100的随机数 vb

我认为应该是rnd*101,但答案是rnd*100,不应该是“rnd*(上界–下界+1)+下界”的吗

rnd*(上界–下界+1)+下界 如果要求产生的随机数要求包含上界(本题中的100),是正确的。

rnd*(上界–下界)+下界 如果要求产生的随机数要求不包含上界(本题中的100),或没有明确说明是否包含上界(本题中的100),就应该没有+1。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-15
如果生成0~100(包括0和100)的整数,是Int(rnd*(100+1))+0,不能去掉Int,Int表示去掉尾部小数。

rnd*100的值域是[0,100),不包括100的任意数,
rnd*101的值域是[0,101),不包括101的任意数,超过了100.本回答被提问者和网友采纳
第2个回答  2013-09-15
这个问题还要看最后如何得到整数的问题,如果是采用四舍五入的方法,或是向上取整的方法:rnd*100

如果使用向下取整的就是rnd*101追问

那如果向上取整要用什么函数,向下取整总什么函数

追答

向下取整使用
Int、Fix。

第3个回答  2013-09-15
rnd*101表示不能超过101的数,也可以是小数,因为你没有指定一定要整数
一定要整数也就是Int(rnd*(100+1))
第4个回答  2013-09-15
Randomize
Msgbox Int(101 * Rnd)

说明:Randomize便是初始化数字种子