隐式转换
//底取值范围转到高取值范围
int i = 3;
float j = i;//隐式转换
强制转换
遇到上面问题时就需要强制转换:
float i = 5;
int j = (int)i;//强制转换
Convert转换
float i = 3;
int j = Convert.ToInt32(i);
强制转换 和 Convert转换 的区别:
1.强制转换转换失败得到一个没有意义的数字,Convert转换失败会抛出异常。
2.强转直接丢弃小数点,Convet会四舍五入。
Parse转换
字符串转数值类型,例子:
//字符串转int类型
int i = int.Parse("123");
int.Parse()和 int.TryParse()的区别:
- int.Parse() 转换失败会抛出异常,而 int.TryParse() 不会。
- int.TryParse()返回的是bool(true或者false)。如果转换失败,输出的值为0;
bool i = int.TryParse("123",out int a);
Console.WriteLine($"i={i},a={a}");//转换成功
bool j = int.TryParse("abc", out int b);
Console.WriteLine($"i={j},a={b}");//转换失败
任意类型转字符串
变量名.ToString()
int i = 3;
i.ToString();