2012-09-02 18 views
1

複製一個隨機數函數我在JS得到這個功能從JS到C#

var number = Math.random() + ""; 
var r = number * 10000000000000; 

我需要在C#中100%相同的功能,我是新的C#我有很難得到一個函數對於這個在C#中,對於那些熟悉或不熟悉JS的人Math.random()將生成一個0到1之間的數字,類似於這個(0.7740926130209118,0.6105941028799862),然後我想乘以10000000000000,我們得到類似「2647182801738.3813 < ---這是我需要的

我想過創建一個13位數的隨機數和另一個4位數的隨機數,只是廣告它像13位數字+。 + 4位數字。這當然不是理想的,但我也有問題。

Random random = new Random(); int randomNumber = random.Next(1000000000000, 9999999999999); 

會給我錯誤關於int,我的理解是我應該使用long?但是當我將int更改爲long它仍然看起來像隨機函數本身是INT?好吧,我已經對我在網上找到的東西感到困惑,所以如果你能幫助解決這個問題並且解釋它是如何工作的,那將是非常棒的。

+0

無論採取什麼方法,請確保您保持Random的相同實例,而不是每次創建一個新的Random對象,因爲它不會爲您生成一系列非常隨機的數字。 – tumtumtum

回答

4

沒有測試過,但聽起來像是你需要:

Random random = new Random(); 

long r = (long)(random.NextDouble() * 10000000000000); 
1

如果你想要一個確切的端口,去的東西,如:

var number = (new Random()).NextDouble() * 10000000000000; 
0

C#也有var :)

using System; 

public class Test 
{ 
     public static void Main() 
     { 
      Random randObj = new Random(); 
      var number = randObj.NextDouble() * 10000000000000; 
      Console.WriteLine(number); 
     } 
} 

...

input: no 
output: 
6426401076105.61