我正在为一个介绍VB类的项目工作。我需要在用户输入的2个值之间创建一个随机数。我有一个上限文本框/变量和一个下限文本框/变量。我已经尝试了所有我能找到的东西,它产生了奇怪的结果。我无法弄清楚如何获得2个值之间生成的随机数。例如,如果用户输入100作为下限而500输入上限,则随机应该在100-500的范围内。
请让我知道我做错了什么?
'Grabs the txbox input and assigns to vars
intLowNumber = CInt(mskLowerRange.Text)
intUpperNumber = CInt(mskUpperRange.Text)
intRandomNumber = rand.Next(intUpperNumber) - intLowNumber
'Output to listbox and textbox
lstOutput.Items.Add(intRandomNumber)
txtNumber.Text = CStr(intRandomNumber)
答案 0 :(得分:3)
您的代码错误,特别是
intRandomNumber = rand.Next(intUpperNumber) - intLowNumber
说intUpperNumber
为200,intLowNumber
为100,上面介于-100(0 - 100)和99(199 - 100)之间。
You can give Random.Next two parameters for a random number in a range. 第一个参数是最小值,第二个参数是随机数的最大值。
请注意,上限(最大值)是独占的,因此如果要包含需要添加的最高值,请使用以下内容:
'Grabs the txbox input and assigns to vars
intLowNumber = CInt(mskLowerRange.Text)
intUpperNumber = CInt(mskUpperRange.Text)
intRandomNumber = rand.Next(intLowNumber, intUpperNumber+1)
'Output to listbox and textbox
lstOutput.Items.Add(intRandomNumber)
txtNumber.Text = CStr(intRandomNumber)