2014-05-06 90 views
4

我可以在1到3之间生成一个相当容易的随机数。生成1到3之间的随机数/包括1位小数位

float x = Random.Range(1, 3); 

但我想生成一个1到3之间的随机数,包括1个小数位。 即1.0,1.1,1.2-2.8,2.9,3.0, 任何帮助感谢。我发现不容易的功能来做到这一点。

注意 - 我使用的.cs在Unity

回答

17

脚本可以繁衍的结果是这样的:

float result = rnd.Next(10, 31) * .1f; 

这将导致一系列从1.03.0,通过.1步进。

+0

将其更改为rnd.Next(10,31),上限是排他性的,不包括在内。 – zmbq

+1

雅,我刚刚发布了。更新。 –

+0

对不起,我应该注意到我在Unity程序中使用脚本来执行此操作。获取错误,'UnityEngine.Random'不包含'Next'的定义,而不包含'UnityEngine.Random'类型的扩展方法'Next'。 – user3609198

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

简单的十进制数添加到您的原代码:

Random.Range(1.0, 3.0); 
0

确保变量您所申请的Random.Range()方法是一个浮动,而不是一个int。同样在使用该方法的地方,确保每次浮动后放置f,例如Random.Range(1.0f,3.0f)。

Random.Range是最大限度的排他性的,所以你可能想用3.1f来包含高达3.0f。

我知道这个线程是旧的只是想我会试着帮助其他人看着它。

相关问题