国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#數據類型的轉換

2023-05-09 18:58:25
字體:
來源:轉載
供稿:網友

總體來看,C#數據類型的轉換包括隱式轉換和顯示轉換兩種。隱式轉換,即不同數據類型之間能自動完成的轉換,無須人為干預,一般情況是由低精度的數據類型向高精度的數據類型轉換。顯示轉換,即強制轉換,必須人為地用一定方法完成的轉換。我們先看看C#中的隱式轉換。

1、隱式轉換

我們用一個例子來說明一下:

using System;

class Class1
       {  
           static void Main(string[] args)
           {
                 sbyte b1 = 23;
                 short c = b1;
                  int i = c;
                  long l = i;
                 decimal d = l;
                 Console.WriteLine("b1={0},c={1},i={2},l={3},d={4}/n",b1,c,i,l,d);

          float f = 12.34453f;
                double db = f;   
                Console.WriteLine("f={0},db={1}/n",f,db);

         byte b2 = 234;
                ushort us = b2;
                uint ui = us;
                ulong ul = ui;
                float f1 = ul;
                Console.WriteLine("b2={0},us={1},ui={2},ul={3},f1={4}/n",b2,us,ui,ul,f1);

         char ch = 'a';
                ushort uh = ch;
               Console.WriteLine("ch={0},uh={1}/n",ch,uh);

        long ll = 12345678;
               float dd = ll;
               Console.WriteLine("ll={0},dd={1}",ll,dd);
             }
       }

其運行結果如下圖所示:

C數據類型的轉換 - KingLong - 武林網—KingLongs Blog

從運行結果來看,sbyte能夠向short,short能向int,int 能向long,long能向decimal自動轉換;byte能向ushort,ushort能向uint,uint能向ulong,ulong能向float,float能向decimal進行自動轉換。char能向ushort自動轉換。根據這一點,我們可以畫出C#數據類型的自動轉換路線圖,如下:

C數據類型的轉換 - KingLong - 武林網—KingLongs Blog

雖然,能夠進行自動轉換,但也存在著表示的數據不一致的情況,我們從上面的運行結果可以看出long型向float型轉換時,以及float向double轉換后,數據不太一致。

2、顯示轉換

顯示轉換的格式為:

          (數據類型)變量;

下面我們用一個例子來說明:

using System;

namespace Explicit
       {
              class Class1
              {
                    static void Main(string[] args)
                    {
                          int i = 2000;
                          short sh = (short)i;
                          Console.WriteLine("i={0},sh={1}",i,sh);

                    long ll = 200000;
                           short sr = (short)ll;
                           Console.WriteLine("ll={0},sr={1}",ll,sr);

                    int j = 65000;
                           short s= (short)j;
                           Console.WriteLine("j={0},s={1}",j,s);

                    double d = 9994657234.2345;
                           float f = (float)d;
                           Console.WriteLine("d={0},f={1}",d,f);

                    Console.WriteLine("注意下面的運算:");
                           short num1 = 20000,num2=23000;
                           short num3 = (short)(num1 + num2);
                           Console.WriteLine("num1={0},num2={1},num3=num1 + num2={2}",num1,num2,num3);
                       }
                 }
           }

運行結果如下圖:

C數據類型的轉換 - KingLong - 武林網—KingLongs Blog

從運行結果可以看出,對于強制轉換,往往容易造成數據的丟失和溢出,從對兩個short型的變量num1和num2求和可以看出,即使同一數據類型的也可能造成數據結果的溢出,這一點要注意。另外,由于整型數據默認為int型的,對于num1+num2算完的結果也要進行強制轉換為short型的。

數據類型的轉換還有其他方法,我們將在以后進行介紹,敬請關注。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江达县| 福鼎市| 拜泉县| 西和县| 伊金霍洛旗| 长沙市| 英德市| 沭阳县| 房山区| 南岸区| 灌南县| 黄龙县| 营口市| 凤阳县| 石景山区| 苏尼特左旗| 德保县| 扶绥县| 石台县| 沙雅县| 楚雄市| 化州市| 德化县| 如皋市| 乌鲁木齐县| 黎城县| 石柱| 济阳县| 新龙县| 家居| 辽阳市| 迁西县| 玉龙| 阜平县| 任丘市| 察隅县| 尼玛县| 丰镇市| 二手房| 元氏县| 准格尔旗|