C# 生成带有一个数字小数点的随机双精度数
我必须生成一个介于-4.0和4.0之间的数字,包括3.4等所有数字。我已经设法创建了一个随机整数,但在创建C# 生成带有一个数字小数点的随机双精度数,c#,.net,vb.net,random,double,C#,.net,Vb.net,Random,Double,我必须生成一个介于-4.0和4.0之间的数字,包括3.4等所有数字。我已经设法创建了一个随机整数,但在创建双精度时遇到了问题-它只返回一个整数 一个解决办法是,您可以得到一个介于-40和40之间的随机int,然后将结果除以10。。NET random类提供了一个方法NextDouble(),可在这种情况下使用。但是,针对您的案例的变通方法将更容易、更快地实现。例如: Dim r As Random = New Random() Dim d As Double = r.Next(-4, 4) +
双精度
时遇到了问题-它只返回一个整数 一个解决办法是,您可以得到一个介于-40和40之间的随机int
,然后将结果除以10。。NET random
类提供了一个方法NextDouble()
,可在这种情况下使用。但是,针对您的案例的变通方法将更容易、更快地实现。例如:
Dim r As Random = New Random()
Dim d As Double = r.Next(-4, 4) + (r.Next(0, 9) / 10) 'First random next call in desired range, and second is to add the decimal point
Console.WriteLine("Generated Number: {0}", d)
您是否介意发布您拥有的代码:围绕您已有的框架提供解决方案要容易得多。我已经找到了问题的解决方案,但如果您感兴趣,我可以发布我使用的代码。当询问有关代码的问题时,请始终发布您已经尝试过的代码。如果你还没有尝试过任何东西,那么这就是你应该首先做的另一个更清晰的方法是dimdasdouble=r.NextDouble()*8-4
。NextDouble()返回一个介于0和1之间的数字(类似于旧的Rnd()函数)。乘以8得到的范围介于0和8之间,下边界为负4。哦,对于“一个小数点”,只需使用Math.Round(d,1)
。这是最简单的选择。谢谢。