C# Convert.ToInt32() 與 int.Parse() 的區別、Convert.ToDouble 與 Double.Parse 的區別

(1) 這兩個方法的最大不同是它們對 null 值的處理方法: Convert.ToInt32(null) 會返回 0 而不會產生任何異常,但 int.Parse(null) 則會產生異常。

(2) 對數據進行四捨五入時候的區別

  •  a. Convert.ToInt32(double value) 如果 value 爲兩個整數中間的數字,則返回二者中的偶數;即 3.5 轉換爲 4,4.5 轉換爲 4,而 5.5 轉換爲 6。不過 4.6 可以轉換爲 5,4.4 轉換爲 4 。
  •  b. int.Parse("4.5") 直接報錯:"輸入字符串的格式不正確"
  •  c. (int)4.6 = 4 Int 轉化其他數值類型爲 Int 時沒有四捨五入,強制轉換。

(3) 對於轉換對象,int.TryParse() 和 int.Parse() 只能是整型字符串類型(即各種整型 ToString() 之後的形式,不能爲浮點型,否則 int.Parse() 就會出現輸入的字符串格式不正確的錯誤,int.TryParse() 也會返回 false,輸出參數爲 0 ,(int)只能是數字類型(例 float,int,uint等); Convert.ToInt32() 可以爲多種類型(例出數字類型外 bool,DateTime 等),Convert.ToInt32 是轉換繼承自 Object 的對象爲 int 的(可以有很多其它類型的數據)。你得到一個 object 對象, 你想把它轉換爲 int, 用 int.Parse 就不可以, 要用 Convert.ToInt32

            int num1 = int.Parse(3.5);//直接報錯
            int num2 = int.Parse("3.5");//運行報錯
            int num3 = int.Parse("3");//正確調用

int.TryParse() 其實是對 int.Parse() 做了一個異常處理,如果出現異常則返回 false,並且將輸出參數返回 0;

 

 

1、Convert.ToDouble 與 Double.Parse 的區別。實際上 Convert.ToDouble 與 Double.Parse 較爲類似,實際上 Convert.ToDouble內部調用了 Double.Parse:

(1)對於參數爲null的時候:

  •  Convert.ToDouble參數爲 null 時,返回 0.0;
  •  Double.Parse 參數爲 null 時,拋出異常。

(2)對於參數爲""的時候:

  •  Convert.ToDouble參數爲 "" 時,拋出異常;
  •  Double.Parse 參數爲 "" 時,拋出異常。

(3)其它區別:

  •  Convert.ToDouble可以轉換的類型較多;
  •  Double.Parse 只能轉換數字類型的字符串。
  •  Double.TryParse 與 Double.Parse 又較爲類似,但它不會產生異常,轉換成功返回 true,轉換失敗返回 false。最後一個參數爲輸出值,如果轉換失敗,輸出值爲 0.0。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章