1. 程式人生 > >廊坊師範學院資訊科技提高班 十二期 劉超

廊坊師範學院資訊科技提高班 十二期 劉超

資料型別

    型別轉換的基礎就是各種各樣的資料型別,只有瞭解了資料型別才談得上對不同的資料進行合理的轉換。下面列出的是一些常用的資料型別:
            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.