将数字转换为随机的百分比

时间:2011-11-06 19:12:51

标签: c# winforms random

我正在考虑选择以百分比的形式指定某些事情的运行频率。

所以我会有一个文本框,需要0-100才能去除一个百分比。我想取这个数字,然后转换成匹配的随机语句。

例如:

textPercentage.text = "10"

将更改为:

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

将该数值转换为匹配的随机语句的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

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

您可能希望使用int.TryParse代替int.Parse来优雅地处理非数字输入。

答案 1 :(得分:0)

首先让您的价值回归int

  • 在WPF中,这很简单,因为您只需要数据绑定到int属性。
  • 在WinForms中,您使用int.Parse方法获取值:int.Parse(textBox.Text)

如果您使用值0-100,则可以按原样使用与原始代码类似的内容。

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();
}

第一个更简单,所以我会选择它:)