数据类型
类型转换的基础就是各种各样的数据类型,只有了解了数据类型才谈得上对不同的数据进行合理的转换。下面列出的是一些常用的数据类型:
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.