我遇到VB代码Int(Rnd() * 75) + 75)
将其转换为C#的问题。
我试过了
Random random = new Random
random.Next( 75 ) + 75
但这不对。请帮助我。
由于
答案 0 :(得分:8)
假设这意味着给出介于75(含)和150(独家)之间的值,我会使用
Random random = new Random();
int value = random.Next(75, 150);
这比首先在[0,75]范围内生成一个数字然后加上75,IMO更清楚。
但请注意,每次您想要一个随机数时,都不应该创建Random
的新实例。您可能希望每个线程有一个实例。我有一个reasonably long article解释了生成随机数的各种陷阱,以及一些解决方法。
答案 1 :(得分:3)
请参阅VB中的代码
在C#中就像
Random random = new Random();
int v = random.Next() * 75 + 75;
不需要转换,因为random.Next()
给出一个整数。你可以通过提供最小值和最大值b / w限制你的随机数生成,如下所示:
random.Next(50, 100);
只能找到随机数b / w 50和100。
答案 2 :(得分:1)
我认为就像这样
Random random = new Random();
int rdnum = (random.Next() + 1) * 75;
修改强>
最后,如果我需要他的随机我将使用此(0-20为较小的数字)
int rdnum = ((new Random()).Next(0, 20) + 1) * 75;
<强> EDIT2 强>
在Deanna的评论之后,代码将
Random random = new Random();
Double rdnum = (random.NextDouble() * 75) + 75;
答案 3 :(得分:1)
请注意,如果您需要精确的Rnd功能,可以按照以下步骤操作:
1.在Solution Explorer中,右键单击引用,然后单击&#34; Add Reference ...&#34;
2.In Assemblies - &gt;框架,选中&#34; Microsoft.VisualBasic&#34;的复选框。
现在您可以像这样使用它:
Microsoft.VisualBasic.VBMath.Rnd();
Microsoft.VisualBasic.VBMath.Randomize();
答案 4 :(得分:0)
请注意,在某些情况下,Random Rnd = new Random();
应该移出for ...循环:
Random Rnd = new Random();
float fRnd = (float)Rnd.NextDouble() * 75f + 75f;