类型转换是什么?
不同数据类型间的转换,如:将int类型转换为string类型
为什么需要类型转换?
从控制台接收到的用户输入的内容都是string类型,如果要进行计算,就需要将接收到的内容转换成数值类型
什么是隐式转换?如下图
什么是强制转换?如下图
一、代码展示
1.隐式转换:int——>double
int num1 = 10; //int类型变量 int num2 = 3; //int类型变量 double sum = num1*0.1 / num2; //double类型变量 Console.WriteLine("{0:0.00}",sum); //使用占位符{0:0.00}表示结果保留两位小数,并在控制台输出 Console.ReadKey();
输出结果:0.33
2.强制转换
①、double——>int:变量前面加(int)
double number = 10.6; //double类型变量并赋值 int num = (int)number; //将double类型变量转换为int类型,变量前面加(int) Console.WriteLine(num); //在控制台输出结果 Console.ReadKey();
输出结果:10
②、int——>string:转换的变量名.to要转换的类型
int num = 10; //int类型变量 string result = num.ToString(); //转换为string类型变量,转换的变量名.to要转换的类型 Console.WriteLine(result); Console.ReadKey();
输出结果:10
③、string——>int:
方法一、Convert转换工厂
方法 |
说明 |
Convert.ToInt16() |
转换为整型(short) |
Convert.ToInt32() |
转换为整型(int) |
Convert.ToInt64() |
转换为整型(long) |
Convert.ToChar() |
转换为字符型(char) |
Convert.ToString() |
转换为字符串型(string) |
Convert.ToDateTime() |
转换为日期型(datetime) |
Convert.ToDouble() |
转换为双精度浮点型(double) |
Conert.ToSingle() |
转换为单精度浮点型(float) |
注意:用户想转换成什么类型,就to谁
Console.WriteLine("请输入你的语文成绩"); //系统提示用户输入 String strChinese = Console.ReadLine(); //接收用户输入的内容 int chinese = Convert.ToInt32(strChinese); //接收到的内容位字符串型数据,转换为int类型 Console.WriteLine("您的语文成绩为:" + chinese );//在控制台输出 Console.ReadKey();
输出结果:您的语文成绩为:90
方法二、int.Parse(要转换的字符串变量)
try //try catch语句,尝试下面的语句 { Console.WriteLine("请输入一个数字"); //提示用户输入内容 string strAge = Console.ReadLine(); //接收用户输入内容 int result = int.Parse(strAge); //将接收的内容转换为int类型数值 Console.WriteLine(result * 2); //输出结果 } catch //如果出现异常,走下面的语句 { Console.WriteLine("您输入的内容无法转换成数字"); //输出错误提示语 } Console.ReadKey();
输出结果(异常情况):请输入一个数字
咯咯咯咯
您输入的内容不正确
方法三、int.TryParse(要转换的字符串变量)
Console.WriteLine("请输入一个数字"); //提示用户输入内容 string strAge = Console.ReadLine(); //接收用户输入的内容 int number = 0; bool result = int.TryParse(strAge, out number); //定义一个布尔类型变量,进行异常处理 if (result) //如果为trye则走句代码 { Console.WriteLine(number * 2); //输出结果 } else //否则 { Console.WriteLine("您输入的内容不正确"); } Console.ReadKey();
输出结果(异常情况):请输入一个数字
咯咯咯咯
您输入的内容不正确
二、总结:
int—>double |
变量*0.1 |
double sum= number1 * 0.1 / number2; |
double—>int |
(int).变量名 |
int number = (int) num; |
int—>string |
变量名.toString() |
string number = num.toString(); |
string—>int |
Convert.to转换的类型(要转换的变量) |
int number = Convert.toInt32(num); |
double—>float |
(float)小数 |
float number = (float)0.134; |
三、拓展:
C#(int)中Convert、Parse、TryParse的区别:
https://www.cnblogs.com/xu-yi/p/11167410.html