2012-08-05 29 views
3

我已經到了我的遊戲中必須實現的功能,它將數字除以3並使其成爲整數。即不是3.5或2.6等....除以3並舍入(如果需要)C#

這將是一個整數,比如3或5

有誰知道我能做到這一點?

回答

8
Math.Round(num/3); 

Math.Ceiling(num/3); 

Math.Truncate(num/3); 
+0

啊,當然。我現在就試試看。謝謝。 – Subby 2012-08-05 05:25:40

+1

這對我有用:gameManager.maxTries =(int)Math.Ceiling((double)gameManager.GameLevelImages [gameManager.GameLevel]/3); 謝謝 – Subby 2012-08-05 05:37:21

+2

知道'num'是否是一個整數是非常重要的。如果'num'是一個浮點類型(或'decimal'),上面的答案是有道理的。另一方面,如果'num'是一個整數類型,比如'int',那麼除法將會截斷以返回一個整數結果。爲了避免這種情況,將denomiantor寫成'3.0'而不是'3'。 **或者**將分子或分母轉換爲「double」(如上面的註釋中所示)。 – 2012-08-05 05:50:00

4

除以三圍捕可以用數學函數來完成:

int xyzzy = Math.Ceiling (plugh/3); 

或者,如果輸入的是一個整數,根本沒有函數:

int xyzzy = (plugh + 2)/3; 

Ceiling功能是用於明確地舍入(朝正無窮大)。還有很多其他的舍入變體(樓層,截斷,圓到偶數,從零開始舍入等),可以找到in this answer

+0

非常感謝! – Subby 2012-08-05 05:38:07

+0

更一般地說,int xyzzy =(plugh + n - 1)/ n; + n強制輪迴,當它完全分開時,-1避免四捨五入。 – thelem 2014-12-16 11:45:16

3

找到this其中說,如果你把數字分開,加兩,然後除以三,你會得到正確的答案。例如,7/3 = 2.3,但(7 + 2)/ 3 = 3.

+0

感謝您提出這個問題!牢記這一點絕對值得。 – MaciekTalaska 2012-08-05 05:38:15

+0

非常感謝Jacob。真的很感激它! – Subby 2012-08-05 05:39:02

+0

這是一個好方法。但只有當要劃分的數字是整數類型時。對於整數類型,'/'分區的做法是不同的,這使得這個工作成爲可能。 – 2012-08-05 05:54:06