(int)、int.Parse()、int.TryParse()、Convert.ToInt32()區別


請看代碼:

//1、null。
//int i1 = (int)null;//編譯時報錯:無法將“null”轉換為“int”,因為后者是不可以為“null”的值類型。
//int i2 = int.Parse(null);//執行時報錯:“System.ArgumentNullException”,值不能為 null。
//int i3;
//bool b1 = int.TryParse(null, out i3);//b1 = False,i3 = 0。
//int i4 = Convert.ToInt32(null);//i4 = 0。

//2、""。
//string s1 = "";
//int i1 = (int)s1;//編譯時報錯:無法將“string”裝換為“int”。
//int i2 = int.Parse(s1);//執行時報錯:“System.FormatException”,輸入字符串的格式不正確。 
//int i3;
//bool b1 = int.TryParse(s1, out i3);//b1 = False,i3 = 0。
//int i4 = Convert.ToInt32(s1);//執行時報錯:“System.FormatException”,輸入字符串的格式不正確。 

//3、小數。
//double d1 = 1.2D;
//double d2 = 1.5D;
//double d3 = 1.8D;
//int i1 = (int)d1;//i1 = 1\1\1。
//int i2 = int.Parse(d1.ToString());//執行時報錯:“System.FormatException”,輸入字符串的格式不正確。 //int i3; //bool b1 = int.TryParse(d1.ToString(), out i3);//b1 = False,i3 = 0。 //int i4 = Convert.ToInt32(d3);//i4 = 1\2\2 //4、整數。 //byte b1 = 10; //int i1 = (int)b1;//i1 = 10。 //int i2 = int.Parse(b1.ToString());//i2 = 10。 //int i3; //bool b2 = int.TryParse(b1.ToString(), out i3);//b2 = True,i3 = 10。 //int i4 = Convert.ToInt32(b1);//i4 = 10。

總結如下:

(int)數字類型:整型取整,小數取整(不存在四舍五入),其他類型異常。

int.Parse(整型.ToString()):整型.ToString()取整,其他類型異常。

int.TryParse(整型.ToString(), out int i):整型.ToString()取整,返回True,其他類型返回0,返回False。

Convert.ToInt32(多種類型):數字類型.ToString()取整,null取0,其他類型異常。其中,如果值是兩個數字中間的小數,返回二者中的偶數,其余正常四舍五入,比如3.4返回3,3.5返回4,3.6返回4。Convert.ToInt32()首先判斷值是否為null,如果值為null,返回0。

 

以上是我對(int)、int.Parse()、int.TryParse()、Convert.ToInt32()的理解,希望可以給需要的朋友帶來幫助。


免責聲明!

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



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