將int值「76.10」變成四捨五入爲76的最簡單方法是什麼?C#將字符串轉換爲int(帶四捨五入)
我已經嘗試了使用Convert.ToInt32和Decimal的幾種不同的方法,但我似乎無法得到它的權利?
編輯:這裏是喬恩幫我用代碼:
decimal t = Math.Round(decimal.Parse(info.HDDStatus));
int v = (int)t;
將int值「76.10」變成四捨五入爲76的最簡單方法是什麼?C#將字符串轉換爲int(帶四捨五入)
我已經嘗試了使用Convert.ToInt32和Decimal的幾種不同的方法,但我似乎無法得到它的權利?
編輯:這裏是喬恩幫我用代碼:
decimal t = Math.Round(decimal.Parse(info.HDDStatus));
int v = (int)t;
最簡單的方法是使用Decimal.Parse
解析它,然後Math.Round
(或潛在Math.Floor
取決於你如何要像數字「76.7」被處理)輪流。 然後只需通過轉換即可轉換爲整數。
我會建議使用decimal
而不是double
因爲你天生談論十進制數(因爲這是它是如何在文本表示)。
解析的確切方法將取決於文化 - 您希望「76,10」的文本出現在歐洲的上下文中,還是總是使用「。」。作爲小數點,例如?
感謝解釋它,我已經添加了我正在使用的代碼原來的問題,它的作品,但它是最好的方式? – JoeBeez 2010-08-10 09:42:09
@JoeBeez:具體取決於你希望值如何取整,以及你想如何解析它,是的。考慮不同的文化,價值觀「76.6」和「76.5」。 – 2010-08-10 09:55:55
轉換它加倍第一和使用Math.Floor()
提取子(76)第一個。
string s = "76.7";
int n = int.Parse(s.Substring(0, s.IndexOf('.')));
這也適用於我,謝謝 – JoeBeez 2010-08-10 09:44:02
我敢肯定,這是一種欺騙? - Math.Round是你的答案OP – Gishu 2010-08-10 09:24:03
代碼..... – 2010-08-10 09:24:16