我可以很容易地生成1到3之间的随机数。
float x = Random.Range(1, 3);
但我试图生成1到3之间的随机数,包括1位小数。 即1.0,1.1,1.2-2.8,2.9,3.0 任何帮助欣赏。我发现没有简单的功能。
注意 - 我在Unity中使用.cs脚本
答案 0 :(得分:17)
您可以将结果乘以:
float result = rnd.Next(10, 31) * .1f;
这将产生从1.0
到3.0
的范围,踩到.1
。
答案 1 :(得分:0)
这看起来很稳固。
class Program
{
static void Main(string[] args)
{
float fMyNumber = 0;
Random rnd = new Random(Guid.NewGuid().GetHashCode());
for (int j = 0; j < 20; j++) {
fMyNumber = rnd.Next(1, 4);
fMyNumber += ((float)rnd.Next(10)) / 10;
Console.WriteLine(fMyNumber.ToString("0.0"));
}
Console.ReadLine();
}
}
答案 2 :(得分:0)
只需在原始代码中添加十进制数字:
Random.Range(1.0, 3.0);
答案 3 :(得分:0)
确保要应用Random.Range()方法的变量是float而不是int。此外,在使用该方法的地方,请确保在每次浮动后放置f,例如Random.Range(1.0f,3.0f)。
Random.Range是最高级别的,因此您可能希望使用3.1f来包含最多3.0f。
我知道这个帖子已经过时了,我以为我会尝试帮助其他任何看过它的人。
答案 4 :(得分:0)
对于使用Unity的用户,请使用System.Random。
例如:
System.Random rnd = new System.Random();
Unity妨碍了它自己的随机对象。