2014-11-06 58 views
-1

我需要將n轉換爲整數。我嘗試了h = rnd.Next(0, Math.Floor(n)),而n則作爲雙精度來存儲。我現在在那個地方的代碼如下。如何將雙變量轉換爲整型變量?

Random rnd = new Random(); 
k = rnd.Next(50, 250); 

int n = Math.Floor(Math.Sqrt(300-k)); 

h = rnd.Next(0, n); 
+1

'Convert.ToInt32(n)' – paqogomez 2014-11-06 00:21:28

+0

你知道'Random'會給你什麼嗎? – chouaib 2014-11-06 00:25:57

+0

是的,但我需要將該隨機數轉換爲整數的計算。 – IDOMATH 2014-11-06 00:39:45

回答

0

Math.Floor返回一個double,因爲此方法可以返回特殊值,如NaN和infinity。您需要投射到int(int)Math.Floor(3.14)

0

因爲在這種情況下,Math.Sqrt只能返回一個積極的double,你可以跳過調用Math.Floor,只是把結果的Math.Sqrtint,這將截斷結果:

int n = (int)Math.Sqrt(300-k); 

注意將double截斷爲int只是丟棄double的小數位,並調用Math.Floordouble轉向負無窮大。在這種情況下,由於你的結果總是正面的,所以它們最終是一樣的,但如果你使用負數,這些操作會產生不同的結果。