2013-11-24 62 views
0

我正在爲一個介紹VB類的項目工作。我需要在用戶輸入的2個值之間創建一個隨機數。我有一個上限文本框/變量和一個下限文本框/變量。我嘗試了所有我能找到的東西,並且它產生了奇怪的結果。我無法弄清楚如何獲得2個值之間生成的隨機數。例如,如果用戶輸入100作爲下限,500輸入上限,那麼隨機應該在100-500的範圍內。2個變量/值之間的隨機數

請讓我知道我在做什麼錯?

'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

可能重複在VB.Net](http://stackoverflow.com/questions/18676/random-int-in-vb-net) –

回答

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. 第一個參數是最小值,第二個參數是隨機數的最大值。

注意,上限(最大值)是排他性的,因此,如果您想包括你需要添加1.使用像這樣的最高值:

'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) 
[隨機Int的
+0

你能解釋我將如何在我的代碼中使用它?我去了鏈接,但我仍然不能'弄清楚如何在我的代碼中使用它。對不起,請裸露我的我是一個初學者,只是學習VB。 –

+0

@Code_Help:看我的編輯:) –

+0

謝謝你,先生,完美地解釋它。我對VB非常陌生,我沒有聽說MSDN頁面告訴我要把它放在rand.Next(lower,upper)格式中看看MSDN網站,它看起來像是寫在4行上,不要理解,直到你展示給我的都是這一行。再次感謝你讓我的夜晚:) –