天天看點

Convert、Parse、TryParse、(int) 的差別

1、 (int)變量名[強制類型轉換]:

      該轉換方式主要用于數字類型轉換,從int類型到long,float,double,decimal類型,可以使用隐式轉換,但是從long類型到int類型就需要使用顯式轉換,也就是該資料類型轉換方式,否則會産生編譯錯誤。

      該方式對于浮點數會做無條件舍去,失去精确度

      當然,該方式也可以進行object到int得轉換,但是,object的值要賦予int類型的值,否則會産生編譯錯誤,而且object為null時也會出錯。

      最後切忌的一點,千萬不要用來處理char類型到int類型的轉換,否則傳回的的值是ascii代碼,而并不是你想要的值。

2 、int.parse(string類型變量名)

      該方式是将數字内容的字元串轉為int類型,如果字元串内容為空或者null時,則抛出argumentnullexception異常;如果字元串内容不是數字,則抛出formatexception異常;如果字元串内容所表示數字超出int類型可表示的範圍,則抛出overflowexception異常。

      使用該方法切忌的一點就是隻能處理字元串内容,而且字元串内容隻能在int類型可表示的範圍之内。

3 、int.tryparse(string s, out int result)

      該方式也是将數字内容的字元串轉為int類型,但是該方式比int.parse優越的地方,就是它不會出現異常。如果轉換成功傳回 true,如果轉換失敗傳回

false。很明顯,最後一個參數為輸出值,如果轉換失敗,輸出值為 0;如果轉換成功,則輸出相應的值。

4 、convert.toint32

      該方式不僅可以将字元串轉為int類型,還可以将其它類型的值轉成int類型。變量若為object或string類型,當其值為null時,會傳回0,不會造成程式錯誤,但是若此string類型的值為string.empty,在轉型成int時,仍會造成程式錯誤。

      該方式對于浮點數會做四舍五入。

      該方式同強制轉換一樣,不能用來處理char類型,否則傳回的是ascii代碼。