C#基础之类型转换
2016-01-30 15:06
441 查看
数据类型
类型转换的基础就是各种各样的数据类型,只有了解了数据类型才谈得上对不同的数据进行合理的转换。下面列出的是一些常用的数据类型:int number = 122;//存整数 Double dounumber = 32.3;//存小数 char char1='5';//字符类型 string str = "123213sadkfjlasdjkf";//字符串
//**************************// //字符类型不能为空 //字符串可以为空 decimal money = 43.3m; //doubel和decimal的区别看小数后面有无“m” //decimal和double都可以存储小数,唯一不同的是这两者的精度不同:decimal的精度比double更高一些。而我们常在decimal类型的数据后面加一个“m”以区别于double。
转换规则
一、兼容:可直接隐式转换
/* * 1、两种类型兼容 * 2、目标类型大于源类型,即小范围的数据类型可以向着包含它的大范围数据类型进行转换 */
/* * 1、int类型的数据可以自动转换为double类型的数据; * 或者说是int类型的数据可以隐式地转换为double类型的数据; */
二、不兼容:需进行显式转换
#region 练习题一 //输入姓名 Console.WriteLine("请输入您的姓名:"); string strName = Console.ReadLine(); //输入用户性别 Console.WriteLine("请输入您的性别:"); string strSex = Console.ReadLine(); //输入用户的语文成绩 Console.WriteLine("请输入您的语文成绩:"); string strChinese = Console.ReadLine(); //输入用户的数学成绩 Console.WriteLine("请输入您的数学成绩:"); string strMath = Console.ReadLine(); //输入用户的英语成绩 Console.WriteLine("请输入您的英语成绩:"); string strEnglish = Console.ReadLine(); //强制转换 int chinese = Convert.ToInt32(strChinese ); int math = Convert.ToInt32(strMath ); int english = Convert.ToInt32(strEnglish ); char sex = Convert.ToChar(strSex); int sum = chinese + math + english; double avg = (chinese + math + english * 1.0) / 3; //计算并输出信息 Console.WriteLine("{0}您好!\n您的语文成绩是{1}分;\n数学成绩是{2}分;\n英语成绩是{3}分;\n总成绩是{4}分;\n平均成绩是{5:0.0}分。\n您是{6}生。", strName, chinese, math, english, sum, avg, sex); Console.ReadKey(); #endregion
上面那个例子的中的强制转换(显式转换)部分,就是将字符串类型的数据转换为了int类型、double类型数据。
int64的身份
错误:处理:
long longsum = Convert.ToInt64(str1); Console.ReadKey();
效果:
题外篇:占位符
占位符是这样书写的:{}(英文半角中括号里面是从0开始的正整数),下面给出个例子供参考。namespace 秒数转换实验 { class Program { static void Main(string[] args) { /*秒数转换实验—内容检验int64(long) */ Console.WriteLine("尊敬的用户,您好!\n我们将为您计算任意一个秒数是多少天多少小时多少分零几秒。\n请在下一行输入您要计算的秒数:"); string strSeconds = Console.ReadLine(); //接收用户输入的秒数 //int intSeconds = Convert.ToInt32(strSeconds); long longSeconds = Convert.ToInt64(strSeconds ); //显式转换,将string类型的strSeconds转换为int类型的intSeconds //将输入的秒数转换为多少天多少小时多少分多少零几秒的代码展示(具体算法) long days = longSeconds / (60*60*24); //计算输入的秒数包含几个完整的一天 long DaysRemainder = longSeconds %(60*60*24); //计算得到包含的完整天数后的余下的秒数 long hours = DaysRemainder / (60*60); //就算得到完整天数后剩余的秒数包含的完整的小时数 long HoursRemainder = DaysRemainder % (60*60); //计算得到完整小时数后剩余的秒数 long minutes = HoursRemainder / 60; //计算得到完整小时数后剩余的秒数包含的完整分钟数 long MinutesRemainder = HoursRemainder % 60; //计算得到完整分钟数后剩余的秒数 //输出结果 Console.WriteLine("尊敬的用户,您好!\n你输入的秒数是{0}秒,它是:\n{1}天{2}小时{3}分钟零{4}秒。", strSeconds, days, hours, minutes, MinutesRemainder); Console.ReadKey(); } } }关于占位符就说到这里,具体的使用方法可以从例子中揣摩哈。
总结
数据类型是任何一个程序都不能回避的问题,只有处理好了数据类型之间的各种关系,才能确保系统的正确性和稳定性。Thanks for your time,enjoy.