C#中數(shù)據(jù)類型的轉(zhuǎn)換介紹
今天學(xué)習(xí)了一下數(shù)據(jù)類型的轉(zhuǎn)換,我整理出了一下筆記;
1、parse轉(zhuǎn)換:將string類型轉(zhuǎn)化為其他類型
//數(shù)據(jù)類型的轉(zhuǎn)換
//即string"18"==> int 18,
//1、parse轉(zhuǎn)換:將string類型轉(zhuǎn)化為其他類型
//待轉(zhuǎn)數(shù)據(jù)必須要像該數(shù)據(jù)類型
string strNumber = "18";
int num01 = int.Parse(strNumber);
float num02 = float.Parse(strNumber);2、任意類型轉(zhuǎn)化為string類型
//2、任意類型轉(zhuǎn)化為string類型
int number = 18;
string str = number.ToString();昨天在做老師的練習(xí)的時(shí)候,就用到了這兩種類型的轉(zhuǎn)換,比如想把char類型轉(zhuǎn)換成為int類型,可以先把它轉(zhuǎn)化為string類型,再把string類型轉(zhuǎn)化為int類型從而實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)換,最穩(wěn)健的做法,string類是充當(dāng)了一個(gè)類似與“容器”的作用。
3、隱式轉(zhuǎn)換:自動轉(zhuǎn)換-->小范圍到大范圍自動轉(zhuǎn)換
//3、隱式轉(zhuǎn)換:自動轉(zhuǎn)換-->小范圍到大范圍自動轉(zhuǎn)換
byte b3 = 100;
int i3 = b3;這個(gè)沒什么可說,很好理解,可以把b3變量看成一塊“地”,存了100,byte是占一個(gè)字節(jié),而int占4個(gè)字節(jié),如果一個(gè)數(shù)據(jù)放在一個(gè)內(nèi)存小的地方都放得下,那內(nèi)存大的地方也能放下。
4、顯示轉(zhuǎn)換:強(qiáng)制轉(zhuǎn)換-->由大范圍到小范圍的強(qiáng)制轉(zhuǎn)換,不過可能會發(fā)生精度丟失
//4、顯示轉(zhuǎn)換:強(qiáng)制轉(zhuǎn)換-->由大范圍到小范圍的強(qiáng)制轉(zhuǎn)換,可能會發(fā)生精度丟失
int i4 = 100;
byte b4 = (byte)i4;這個(gè)強(qiáng)制轉(zhuǎn)換就厲害了,不過語法也很簡單,給大家看我輸入的幾個(gè)例子就明白為什么簡單了
byte numbe1 = 1;
short numbe2 = 2;
short resu =numbe1 + numbe2;這里的第三行報(bào)錯(cuò),

這里我們要仔細(xì)閱讀錯(cuò)誤,無法將int類型隱式轉(zhuǎn)換成short,就說明我們這個(gè)resu變量應(yīng)該為int類型,或者用強(qiáng)制轉(zhuǎn)換。(如果把第三行的short換成byte,一樣的解決方式)
byte numbe1 = 1;
short numbe2 = 2;
short resu = (short)(numbe1 + numbe2);
//或int resu =numbe1 + numbe2; byte numbe1 = 1;
byte numbe2 = 2;
byte resu = (byte)(numbe1 + numbe2);
//或int resu =numbe1 + numbe2;在強(qiáng)制轉(zhuǎn)換中出現(xiàn)這種無法隱式轉(zhuǎn)換類型的錯(cuò)誤時(shí),看錯(cuò)誤提示就行,很簡單。
不過我在嘗試其他類型的時(shí)候,卻發(fā)現(xiàn)了一個(gè)不一樣的錯(cuò)誤。

float類型和decimal類型竟然不能相加?
查閱資料后發(fā)現(xiàn)原來它們兩在內(nèi)存里面存儲的結(jié)構(gòu)就不一樣,float浮點(diǎn)型是近似存儲(包括double),而decimal是精確存儲,所以無法相加。(祖師爺告訴我的....)。
不過float與double類型可以相加
float numbe1 = 1;
double numbe2 = 2;
byte resu = (byte)(numbe1 + numbe2);
//或double resu = numbe1 + numbe2;可以理解為由多種變量參與運(yùn)算,結(jié)果自動向較大的類型提升。
5、最后再給一個(gè)簡單的題目考考大家:
代碼中的b+=3和b=b+3,這兩種寫法完全一樣的嗎?
int a = 1;
a = a + 3;
a += 3;
byte b = 1;
b += 3;
b = b + 3;答案是不一樣的,會報(bào)錯(cuò),因?yàn)轭愋吞嵘秊閕nt了。

加一個(gè)強(qiáng)制轉(zhuǎn)換,就解決了。

為什么b+=3不報(bào)錯(cuò)呢?
+=屬于快捷運(yùn)算符,不做自動類型提升。不過如果初始b值過大,超出范圍255,會從頭開始,即從0開始,


到此這篇關(guān)于C#中數(shù)據(jù)類型的轉(zhuǎn)換介紹的文章就介紹到這了,更多相關(guān)C#數(shù)據(jù)類型轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#從windows剪貼板獲取并顯示文本內(nèi)容的方法
這篇文章主要介紹了C#從windows剪貼板獲取并顯示文本內(nèi)容的方法,涉及C#操作剪貼板的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
非常實(shí)用的C#字符串操作處理類StringHelper.cs
這篇文章主要為大家詳細(xì)介紹了非常實(shí)用的C#字符串操作處理類StringHelper.cs,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
C#動態(tài)生成DropDownList執(zhí)行失敗原因分析
這篇文章主要介紹了C#動態(tài)生成DropDownList執(zhí)行失敗原因分析,以一個(gè)實(shí)例形式分析了C#動態(tài)生成DropDownList的相關(guān)注意要點(diǎn)與使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
C#中32位浮點(diǎn)數(shù)Float(Real)一步步按位Bit進(jìn)行分析
這篇文章主要介紹了C#中32位浮點(diǎn)數(shù)Float(Real)一步步按位Bit進(jìn)行分析,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08

