2 回答

TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊
補充下:
1 (int)是一種類型轉(zhuǎn)換;當(dāng)我們從int類型到long,float,double,decimal類型,可以使用隱式轉(zhuǎn)換,但是當(dāng)我們從long類型到int類型就需要使用顯式轉(zhuǎn)換,否則會產(chǎn)生編譯錯誤。
2 int.Parse()是一種內(nèi)容轉(zhuǎn)換;表示將數(shù)字內(nèi)容的字符串轉(zhuǎn)為int類型。 如果字符串為空,則拋出ArgumentNullException異常; 如果字符串內(nèi)容不是數(shù)字,則拋出FormatException異常; 如果字符串內(nèi)容所表示數(shù)字超出int類型可表示的范圍,則拋出OverflowException異常;
3 int.TryParse 與 int.Parse 又較為類似,但它不會產(chǎn)生異常,轉(zhuǎn)換成功返回 true,轉(zhuǎn)換失敗返回 false。 最后一個參數(shù)為輸出值,如果轉(zhuǎn)換失敗,輸出值為 0
4 Convert.ToInt32()是一種內(nèi)容轉(zhuǎn)換;但它不限于將字符串轉(zhuǎn)為int類型,還可以是其它類型的參數(shù); 比較: Convert.ToInt32 參數(shù)為 null 時,返回 0; int.Parse 參數(shù)為 null 時,拋出異常。 Convert.ToInt32 參數(shù)為 "" 時,拋出異常; int.Parse 參數(shù)為 "" 時,拋出異常。 Convert.ToInt32 可以轉(zhuǎn)換的類型較多; int.Parse 只能轉(zhuǎn)換數(shù)字類型的字符串。
測試代碼如下:
#region double i double a = 1.019; int b = (int)(a * testvar); int c = Convert.ToInt32(a * testvar); int d = int.Parse((a * testvar).ToString()); int f = 0;//也可以不賦值,出錯時為默認(rèn)為0 bool result = int.TryParse((a * testvar).ToString(), out f); Console.WriteLine(b.ToString()); Console.WriteLine(c.ToString()); Console.WriteLine(d.ToString()); Console.WriteLine(f.ToString()); Console.ReadKey(); #endregion
當(dāng)testvar為1000時,運行結(jié)果:
1018
1019
1019
1019
當(dāng)testvar為100時,運行結(jié)果:
int.Parse出錯:輸入字符串的格式不正確。
修改代碼為:
#region double double a = 1.019; int b = (int)(a * testvar); int c = Convert.ToInt32(a * testvar); int f = 0;//也可以不賦值,出錯時為默認(rèn)為0 bool result = int.TryParse((a * testvar).ToString(), out f); Console.WriteLine(b.ToString()); Console.WriteLine(c.ToString()); Console.WriteLine(f.ToString()); Console.ReadKey(); #endregion
運行結(jié)果為:
101
102
0
推薦使用int.TryParse
- 2 回答
- 0 關(guān)注
- 1711 瀏覽
添加回答
舉報