2016-02-15 82 views
1

我有一個C#應用程序正在計算一些數字。我需要往下看。C# - 舍入到最近的整數

var increment = 1.25; 
var result = 50.45 - 23.70; // equals 26.75 
int interval = difference/increment; // result is 21.4. However, I just want 21 

我必須得到intervalint。同時,由於其rounding behavior,我不能只使用Convert.ToInt32。我總是想要最低的整數。但是,我不知道如何。

回答

5

剛剛嘗試這個..

int interval = Convert.ToInt32(Math.Floor(different/increment)); 
6

使用靜態Math類:

int interval = (int)Math.Floor(difference/increment); 

Math.Floor()將四捨五入到最接近的整數。

+0

它返回一個double =所以爲什麼沒有編譯器警告? – Rob

+0

@Rob只需將其轉換爲「int」就可以實現,文檔有點令人困惑「小於或等於d的最大整數」。但它的確返回了雙重 –

3

你也可以只是簡單的結果轉換爲int。這會截斷數字。

int interval = (int)(difference/increment); 
+1

是的,這是最快的選擇。 –