2010-08-10 83 views
2

將int值「76.10」變成四捨五入爲76的最簡單方法是什麼?C#將字符串轉換爲int(帶四捨五入)

我已經嘗試了使用Convert.ToInt32和Decimal的幾種不同的方法,但我似乎無法得到它的權利?

編輯:這裏是喬恩幫我用代碼:

  decimal t = Math.Round(decimal.Parse(info.HDDStatus)); 
      int v = (int)t; 
+0

我敢肯定,這是一種欺騙? - Math.Round是你的答案OP – Gishu 2010-08-10 09:24:03

+0

代碼..... – 2010-08-10 09:24:16

回答

5

最簡單的方法是使用Decimal.Parse解析它,然後Math.Round(或潛在Math.Floor取決於你如何要像數字「76.7」被處理)輪流。 然後只需通過轉換即可轉換爲整數。

我會建議使用decimal而不是double因爲你天生談論十進制數(因爲這是它是如何在文本表示)。

解析的確切方法將取決於文化 - 您希望「76,10」的文本出現在歐洲的上下文中,還是總是使用「。」。作爲小數點,例如?

+0

感謝解釋它,我已經添加了我正在使用的代碼原來的問題,它的作品,但它是最好的方式? – JoeBeez 2010-08-10 09:42:09

+0

@JoeBeez:具體取決於你希望值如何取整,以及你想如何解析它,是的。考慮不同的文化,價值觀「76.6」和「76.5」。 – 2010-08-10 09:55:55

2
  1. 轉換它加倍第一和使用Math.Floor()

  2. 提取子(76)第一個。

 

string s = "76.7"; 
int n = int.Parse(s.Substring(0, s.IndexOf('.'))); 
+0

這也適用於我,謝謝 – JoeBeez 2010-08-10 09:44:02