[C#]double轉int(轉)


double轉int 一、 Convert.ToInt32和int強制轉換 static void Main(string[] args) { double dbTmp = 234.44; int iTmp = Convert.ToInt32(dbTmp); int iTmp1 = (int)dbTmp; Console.WriteLine(iTmp1.ToString()); Console.Read(); } 答案是一樣的,都是234. 現在我們將數值變成234.54.現在就有個四舍五入的問題了,那下面的代碼會得到什么數字呢? static void Main(string[] args) { double dbTmp = 234.54; int iTmp = Convert.ToInt32(dbTmp); //int iTmp1 = (int)dbTmp;
 Console.WriteLine(iTmp.ToString()); } 答案是235. 如果改成用(int)強制轉換呢? static void Main(string[] args) { double dbTmp = 234.54; //int iTmp = Convert.ToInt32(dbTmp);
   int iTmp1 = (int)dbTmp; Console.WriteLine(iTmp1.ToString()); } 這次的答案是234,而不是四舍五入。 那么這兩種轉換方式的區別是什么呢? 1. (int)是類型轉換,Convert.ToInt32是內容轉換。 2. (int)是舍去轉換,Convert.ToInt32是四舍五入。 string轉int 現在我們變換下代碼,如下: static void Main(string[] args) { string strTmp = "234.94"; int iTmp = Int32.Parse(strTmp); Console.WriteLine(iTmp.ToString()); } 會輸出什么結果呢?234?不是,程序出錯。 Input string was not in a correct format. 因為234.94不是一個int,而是一個double。這時候我們需要改用TryParse. static void Main(string[] args) { string strTmp = "234.94"; int iTmp = 0; if (Int32.TryParse(strTmp, out iTmp)) Console.WriteLine(iTmp.ToString()); else Console.WriteLine("invalid number."); } 這時候程序就不會跳出異常了。輸出invalid number。

出處:http://blog.sina.com.cn/s/blog_6c762bb30101asfq.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM