2个变量/值之间的随机数

时间:2013-11-24 09:53:17

标签: vb.net random

我正在为一个介绍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)

1 个答案:

答案 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)