在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