資料型別轉換是我們從小學就開始學習的內容,只不過在小學我們稱為單位換算。比如一條狗加一匹馬等於是多少呢?總不是兩條狗或兩匹馬吧。我們需要把單位轉為都可以計算的單位,比如動物。結果就是兩隻動物。這樣的轉換,我們稱為資料型別轉換。
在c#中資料型別轉換又分為隱式轉換和顯式轉換。隱式轉換是預設的轉換,而顯式轉換就是必須明確說明的轉換。
比如¥1+$1的問題,在國際**結算中,預設將人民幣轉換為美元,那計算的結果是¥1+$1=$1.14。但如果在國內**結算,就需要明確說明用什麼貨幣基準來轉換,如果轉為人民幣的話就是¥1+$1=¥8。
這兩個案例都很明確的說明,在數值的計算過程中,需要單位統一,在軟體的開發過程中叫做資料型別一致。
在c#中對數值型別的資料轉換規定
資料容量小的型別轉換為資料型別大的型別,是隱式轉換,其變數中儲存的資料值不會受到任何影響和變化。
資料容量大的型別轉換為資料型別小的型別,是顯式轉換,如果遠資料中儲存的實際值大於目標型別能儲存的值範圍,則會發生值受損。顯式轉換又叫強制型別轉換。
code
static
void
main(
string
args)
上述**首先將int的最大值儲存在int型別的i中,又將i的值賦值給了long型別的l。由於long型別能儲存的範圍遠遠大於int,因此存放在long型別中的值不會受損。
又將l儲存的值賦值為i,雖然這個時候l中儲存的具體值不超過int的範圍,但long型別比int型別大(你可以想象long的盒子比int的盒子大,大盒子哪怕放了乙個小東西,但大盒子所佔據的空間還是比小盒子大),所以要求顯式轉換。不過由於具體存的值夠int儲存,所以值沒有受到影響。
最後一次,我們把long型別的最大值賦值為l,又把l賦值為i,int顯然沒有足夠的空間儲存賦予的值,這個時候i中的值是多少呢?-1。
為什麼是-1?我們來看以下的經典轉換
byteb =
200;b =
(byte
)(b
+100
);system.console.writeline(b);
第二行中100是字面量
,所以的整數的字面量預設是int型別。byte型別容量小於int型別,應此byte+int的型別轉換是將byte顯式轉換為int,然後兩個int型別之和為int,將相加後的值賦值給byte型別的b,就必須要強制型別轉換。
得到的結果是44。byte型別的最大值是255,並且從0開始儲存。(b+100)超過byte最大值45。結果是44就說明當給予的值超過了當前型別能儲存的範圍,則c#預設從0重新開始存放值。
對b賦值寫成以下格式,不需要顯示的宣告型別轉換,因為+=是賦值運算子。
byteb =
200;
b +=
100;
system.console.writeline(b);
資料型別轉換 1人民幣 1美元 ?
資料型別轉換是我們從小學就開始學習的內容,只不過在小學我們稱為單位換算。比如一條狗加一匹馬等於是多少呢?總不是兩條狗或兩匹馬吧。我們需要把單位轉為都可以計算的單位,比如動物。結果就是兩隻動物。這樣的轉換,我們稱為資料型別轉換。在c 中資料型別轉換又分為隱式轉換和顯式轉換。隱式轉換是預設的轉換,而顯式...
python 作業2 人民幣大寫轉換問題
題目描述 銀行在列印票據的時候,常常需要將阿拉伯數字表示的人民幣金額轉換為大寫表示,現在請你來完成這樣乙個程式。在中文大寫方式中,0到10以及100 1000 10000被依次表示為 零 壹 貳 叄 肆 伍 陸 柒 捌 玖 拾 佰 仟 萬 以下的例子示範了阿拉伯數字到人民幣大寫的轉換規則 1 壹圓 ...
1 資料型別轉換
問題說明 c語言規定,不同型別的資料需要轉換成同一型別後才能進行計算,在整型,實型喝字元型資料之間通過型別轉換便可以進行混合運算。當混合不同型別的變數進行計算時,便可能會發生型別轉換。相同型別的資料在轉換時有規律可循,如字元必定先轉換為整數,short型轉化為int型,float型資料在運算時一律轉...