100到200间的随机整数用VB怎么表示.

问题描述:

100到200间的随机整数用VB怎么表示.

这个问题不太准确,100到200之间的随机整数,是否包含100和200呢?
如果不包含100和200本身,应该这样表示:Int(Rnd()*99)+101
如果包含100和200本身,应该这样表示:Int(Rnd()*101)+100
如果包含100但不包含200,应该这样表示:Int(Rnd()*100)+100
如果包含200但不包含100,应该这样表示 Int(Rnd()*100)+101是都不包含的,但这个问题我没有弄懂,能否细说一下呢?如果不包含100和200本身,应该用:Int(Rnd()*99)+101这个问题首先要弄清楚Rnd()函数到底返回的是什么。Rnd()函数会返回一个从0到0.999999999....(趋向于1但不等于1)之间的数,包括0,但不包括1。再说Int()函数,它会舍弃小数,向下取整,例如:Int(0) 等于0Int(0.5) 等于0Int(0.9999999) 等于0Int(1) 等于1Int(1.9) 等于1Int(2) 等于2Int(2.9) 等于2好了,Int(Rnd())等于什么呢?它永远等于0,因为Rnd()的返回值在0-0.999999...之中,可以有0,但不会有1;Int(Rnd()*10) 会得出 0,1,2,3,4,5,6,7,8,9 之中的任意一个数,但不可能有10,因为Rnd()*10的范围在0-9.99999...之间,可以有0,但不会有10(因为Rnd()不会返回1);Int(Rnd()*100) 会得出 0,1,2,3......96,97,98,99 之中的任意的一个数,因为Rnd()*100的范围在0-99.9999999....之间,可以有0,但不会有100;再说 Int(Rnd()*99)+101 这个算式:Int(Rnd()*99)将返回0,1,2,3....97,98 之中的任意一个数,因为Rnd()*98范围在0-98.99999....之间,可以有0,但不会有99,更不会超过99。Int(Rnd()*99)+101,相当于下限是0+101=101;上限是98+101=199,也就是返回值在101-199之间的整数(包括101和199)。