2011-11-06 115 views
0

我正在尋找一個選項,以百分比的形式指定應該運行的頻率。轉換成隨機數的百分比

所以我會有一個文本框,它需要一個數字0-100去百分比。然後我想取這個數字,然後轉換成一個匹配的隨機語句。

因此,例如:

textPercentage.text = "10" 

將更改爲類似:

if (rnd.Next(1, 11) = 1) 
{ 
    do(); 
} 

什麼是該數值轉換爲隨機匹配語句的最佳方法是什麼?

+0

是您的文本框或WPF的WinForms?我打賭它是WinForms,但我想我會問無論如何。 –

+0

是的,WinForms,抱歉不清楚。 – Michael

+0

@Michael我看到這樣的:隨機形式1 - 10,然後添加條件:如果,值爲1,沒有別的,所以這是1/10和thi是10個百分比,如果值是1,下一個值是4,所以我們有兩個值,所以這是2/10 = 20%。我是否正確地思考你的想法? – deadfish

回答

3
var i = int.Parse(textPercentage.Text); 
if (rnd.Next(1, 101) <= i) 
{ 
    do(); 
} 

您可能需要使用int.TryParseint.Parse代替正常處理非數字輸入。

+0

謝謝,這麼簡單,我讓它變得更加複雜。 – Michael

0

首先讓您的價值回到int

  • 在WPF中,這很容易,因爲你只是綁定到int屬性。
  • 在的WinForms您使用int.Parse方法來獲取值回:如果你使用0-100,你可以使用類似於原來的代碼什麼的,因爲,是值int.Parse(textBox.Text)

int value = int.Parse(textBox.Text); 

if(rnd.Next(0, 100) < value) 
{ 
    DoSomething(); 
} 

否則,只需添加一個到兩個的開始和結束的值:

int value = int.Parse(textBox.Text); 

if(rnd.Next(1, 101) <= value) 
{ 
    DoSomething(); 
} 

第一個是簡單的,所以我會用它去:)