您的位置:首页 > 编程语言 > C#

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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: