2014-05-06 92 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。

我知道這個線程是舊的只是想我會試着幫助其他人看着它。

相關問題