在C#中,要將一個字符串或浮點數轉換為整數,基本上有三種方法:
(1)使用強制類型轉換:(int)浮點數
(2)使用Convert.ToInt32(string)
(3)使用int.Parse(string)或int.TryParse(string,out int)
在實際使用時,當要轉換的字符串或數字帶有小數時,發現它們有以下區別:
// int a1 = (int)aa; //錯誤,無法將string轉換為int
int a2 = (int)2.83; //正確,將Double類型轉換為int,結果為2
int b1 = (int)'a'; //結果為97,注意是字符,而不是字符串(如果是字符串,編譯不能通過)
decimal a = 2.83M;
int b4 = (int)a; //正確,將decimal類型轉換為int,結果為2
int a3 = Convert.ToInt32("2"); // 正確,結果為2
int b6 = Convert.ToInt32(2.8); //b的值為3,(四舍五入)
int a5 = int.Parse("2"); // 正確,結果為2
//int a3 = Convert.ToInt32("2.83"); // 報異常,說明其參數必須是整數字符串
//int a4 = int.Parse("2.83"); // 報異常,說明其參數必須是整數字符串
//int b3 = int.Parse("a"); //報異常
//int b2 = Convert.ToInt32("a"); //報異常
int c = -1;
int.TryParse("2.83", out c); //不能轉換成功,結果為0
int.TryParse("2", out c); //轉換成功,結果為2
int.TryParse("a", out c); //結果為0
//將字符串轉換為int方法
decimal resMin1 = 0;
string strValue = "3.00000";
// Decimal m = (decimal)strValue; //錯誤,無法將string轉換為decimal
Decimal.TryParse(strValue, out resMin1); //正確,resMin1為3
int cnt = Convert.ToInt32(resMin1); //正確cnt為3