我需要將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);
我需要將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);
Math.Floor
返回一個double,因爲此方法可以返回特殊值,如NaN和infinity。您需要投射到int
:(int)Math.Floor(3.14)
。
因爲在這種情況下,Math.Sqrt
只能返回一個積極的double
,你可以跳過調用Math.Floor
,只是把結果的Math.Sqrt
到int
,這將截斷結果:
int n = (int)Math.Sqrt(300-k);
注意將double
截斷爲int
只是丟棄double
的小數位,並調用Math.Floor
將double
轉向負無窮大。在這種情況下,由於你的結果總是正面的,所以它們最終是一樣的,但如果你使用負數,這些操作會產生不同的結果。
'Convert.ToInt32(n)' – paqogomez 2014-11-06 00:21:28
你知道'Random'會給你什麼嗎? – chouaib 2014-11-06 00:25:57
是的,但我需要將該隨機數轉換爲整數的計算。 – IDOMATH 2014-11-06 00:39:45