2014-02-26 99 views
0

我是C#的初學者我已經創建了這個程序來產生7個隨機數,並在控制檯中顯示它們。但現在我想要在18.0-23.5範圍內生成小數。 但我無法弄清楚如何?我用Next.Double嘗試過,但我無法使它工作。請幫助!帶小數點的隨機數

這裏是我的程序:

int lotto1 = 0, lotto2 = 0, lotto3 = 0, lotto4 = 0, lotto5 = 0, lotto6 = 0, lotto7 = 0; 
Random rnd = new Random(); 

Console.WriteLine("Din lottorad är:"); 
lotto1 = rnd.Next(1, 36); 
Console.WriteLine("Nr1: " + lotto1); 
lotto2 = rnd.Next(1, 36); 
Console.WriteLine("Nr2: " + lotto2); 
lotto3 = rnd.Next(1, 36); 
Console.WriteLine("Nr3: " + lotto3); 
lotto4 = rnd.Next(1, 36); 
Console.WriteLine("Nr4: " + lotto4); 
lotto5 = rnd.Next(1, 36); 
Console.WriteLine("Nr5: " + lotto5); 
lotto6 = rnd.Next(1, 36); 
Console.WriteLine("Nr6: " + lotto6); 
lotto7 = rnd.Next(1, 36); 
Console.WriteLine("Nr7: " + lotto7); 
+2

http://stackoverflow.com/questions/609501/generating- a-random-decimal-in-c-sharp – Habib

+3

你只想要一個小數位嗎?在180到235之間生成整數值,然後除以十。 –

+0

在發佈問題之前至少搜索一次! –

回答

7

使用NextDouble

rnd.NextDouble() * (23.5-18.0) + 18.0 

或更一般地:

public double NextDouble(Random rnd, double min, double max) 
{ 
    return rnd.NextDouble() * (max-min) + min; 
} 
+0

您也可以將'NextDouble(Random,double,double)'方法放入擴展方法中,以便像'rnd.NextDouble(18.0,23.5)'一樣使用它。 – Kyle

+0

爲了跟進Kyle的建議,方法簽名應該是public static double NextDouble(這個Random rnd,double min,double max)' –