1. 程式人生 > >C# 幾種資料型別轉換

C# 幾種資料型別轉換

1.(int)變數名[強制型別轉換]

    該轉換方式主要用於數字型別之間的轉換,從int型別向long,float,double,decimal 型別轉換可以使用隱式轉換,但從long型到int 就需要使用顯示轉換,即使用該型別的轉換方式否則產生編譯錯誤。

  該方式對於浮點數會無條件的捨去,會失去精確度

  對於char型別的到int型別的轉換,傳回的值是ASCII碼

   示例:double doubleValue = 3.14159265;  int intValue = (int)doubleValue;

2.int.Parse(string 變數名)

  該方式是將數字內容的字串轉換為int型別,如果字串的內容為Null ,則丟擲ArgumentNullException異常;如果字串內容不是數字,則丟擲FormatException異常。

  使用該方法只能處理字串的內容,而且轉換後的字串內容要在int型別的可表示範圍之內

3.int.TryParse(string s, out int result)

  該方式也是將數字內容的字串轉換為int型別,但是該方式有比int.Parse 優越的地方,就是它不會出現異常,最後一個引數result是輸出值,如果轉換成功則輸出相應的值,轉換失敗則輸出0。  

4. Convert.ToInt32

  該方式不僅可以將字串型別轉換為int,還可以將其他的型別轉換為int。變數若為object或string型別,當其值為Nul時,會傳回0,不會造成程式錯誤,但是若此string型別的值為string.Empty,轉換成int時,程式仍會出錯。

  該方式對於float型別做四捨五入。

  該方式同強制型別轉換一樣在處理char型別的時候,返回的都是ASCII碼

  示例: int intValue1 = "123".ConvertTo<int>(); 
      int? intValue2 = "123".ConvertTo<int?>(); 
      DateTime dateTimeValue1 = "1981-08-24".ConvertTo<DateTime>(); 
      DateTime? dateTimeValue2 = "1981-08-24".ConvertTo<DateTime?>();