浮點型 + 類型轉(zhuǎn)換.ppt

浮點型 + 類型轉(zhuǎn)換.ppt

ID:48154585

大?。?35.50 KB

頁數(shù):16頁

時間:2020-01-17

浮點型 + 類型轉(zhuǎn)換.ppt_第1頁
浮點型 + 類型轉(zhuǎn)換.ppt_第2頁
浮點型 + 類型轉(zhuǎn)換.ppt_第3頁
浮點型 + 類型轉(zhuǎn)換.ppt_第4頁
浮點型 + 類型轉(zhuǎn)換.ppt_第5頁
資源描述:

《浮點型 + 類型轉(zhuǎn)換.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、浮點型+類型轉(zhuǎn)換數(shù)據(jù)之間的相互轉(zhuǎn)換也是重點浮點型C語言中除了整型外,另外一種數(shù)據(jù)類型就是浮點型,浮點型可以表示有小數(shù)部分的數(shù)據(jù)。浮點型包含三種數(shù)據(jù)類型,分別是單精度的float類型,雙精度的double類型,和長雙精度longdouble類型。浮點型(圖表)浮點型floatdoublelongdouble類型位數(shù)有效數(shù)字取值范圍float326~7-1.4e-45~3.4e38double6415~16-4.9e-324~1.8e308longdouble12818~19——浮點型參與運算的表達式中存在double類型,或者說,參與運算的表達式不是完全由整型組成的,在沒有明確的類型轉(zhuǎn)換標識

2、的情況下(將在下一小節(jié)中講解),表達式的數(shù)據(jù)類型就是double類型。例如:1+1.5+1.23456789/*表達式運算結(jié)果是double類型*/1+1.5/*表達式運算結(jié)果是double類型*/1+2.0/*表達式運算結(jié)果是double類型*/1+2/*表達式運算結(jié)果是int類型*/例子當?shù)?.5,編譯器默認它為雙精度的double類型,精度高占據(jù)存儲空間大,如果只希望以單精度float類型運行,可以在常量后添加字符‘f’或者‘F’都可以,比如1.5F,2.38F。同樣的,如果希望數(shù)據(jù)是以精度更高的longdouble參與運算,可以在常量后添加字符‘l’或者‘L’都可以,比如1.512

3、45L,2.38000L。建議使用大寫‘L’,因為小寫‘l‘容易和數(shù)字1混淆。浮點型再舉幾個運算的表達式的例子,如下所示:inti,j;floatm;doublex;i+j/*表達式運算結(jié)果是int類型*/i+m/*表達式運算結(jié)果是float類型*/i+m+x/*表達式運算結(jié)果是double類型*/浮點型指數(shù)形式如下所示(‘e’或者‘E’都可以)2.0e3表示2000.01.23e-2表示0.0123.123e2表示12.31.e-3表示0.001對于指數(shù)形式,有以下兩點要求:⑴字母e前面必須要有數(shù)字⑵字母e的后面必須是整數(shù)浮點型小數(shù)形式指數(shù)形式類型轉(zhuǎn)換1隱式轉(zhuǎn)換2顯式轉(zhuǎn)換類型轉(zhuǎn)換計算過程

4、中,如果遇到不同的數(shù)據(jù)類型參與運算該怎么辦,是終止程序還是轉(zhuǎn)換類型后繼續(xù)運算。編譯器采取第二種方式,如果能夠轉(zhuǎn)換成功,程序繼續(xù)運算,如果轉(zhuǎn)換失敗,程序報錯同時終止運行。數(shù)據(jù)類型有兩種轉(zhuǎn)換方式,分別隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。隱式轉(zhuǎn)換C語言中設(shè)定了不同數(shù)據(jù)參與運算時的轉(zhuǎn)換規(guī)則,編譯器會在悄無聲息中進行數(shù)據(jù)類型的轉(zhuǎn)換,進而計算出最終結(jié)果,這就是隱式轉(zhuǎn)換。隱式轉(zhuǎn)換inti;i=2+'A';先計算“=”號右邊的表達式,字符型和整型混合運算,按照數(shù)據(jù)類型轉(zhuǎn)換先后順序,把字符型轉(zhuǎn)換為int類型65,然后求和得67,最后把67賦值給變量i。doubled;d=2+'A'+1.5F;先計算“=”號右邊的表達式,字

5、符型、整型和單精度float類型混合運算,因為有浮點型參與運算,“=”右邊表達式的結(jié)果一定是double類型,按照數(shù)據(jù)類型轉(zhuǎn)換順序,把字符型轉(zhuǎn)換為類型65.0,2轉(zhuǎn)換為2.0,1.5F轉(zhuǎn)換為1.5,最后把雙精度浮點數(shù)68.5賦值給變量d。隱式轉(zhuǎn)換上述情況都是有低精度類型向高精度類型的轉(zhuǎn)換,如果逆向轉(zhuǎn)換,可能會出現(xiàn)丟失數(shù)據(jù)的危險,編譯器會以警告的形式給出提示。例如:inti;i=1.2;浮點數(shù)1.2舍棄小數(shù)位后,把整數(shù)部分1賦值給變量i。如果i=1.9,運算后變量i的值依然是1,而不是2。注意:把浮點數(shù)轉(zhuǎn)換為整數(shù),直接舍棄小數(shù)位。隱式轉(zhuǎn)換【范例-1】整型和浮點型數(shù)據(jù)類型間的隱式類型轉(zhuǎn)換。01

6、#include02intmain(void)03{04inti;05i=1+2.0*3+1.234+'c'-'A';/*混合運算*/06printf("%d",i);/*輸出i*/07return0;08}顯式轉(zhuǎn)換隱式類型轉(zhuǎn)換編譯器是會產(chǎn)生警告的,提示程序存在潛在的隱患。如果非常明確的希望轉(zhuǎn)換數(shù)據(jù)類型,這就需要用到顯式類型轉(zhuǎn)換了。顯式轉(zhuǎn)換格式如下所示:(類型名稱)變量或者常量或者(類型名稱)(表達式)顯式轉(zhuǎn)換例如,需要把一浮點數(shù),以整數(shù)的形式使用printf()函數(shù)輸出,怎么辦?就可以調(diào)用顯示類型轉(zhuǎn)換。floatf=1.23;printf("%d",(int)f

7、);可以得到輸出結(jié)果1,沒有因為調(diào)用的printf()函數(shù)格式控制列表和輸出列表前后類型不統(tǒng)一導(dǎo)致程序報錯。繼續(xù)分析上例,顯示類型轉(zhuǎn)換只是把f小數(shù)位直接舍棄,輸出了整數(shù)部分,變量f的值和數(shù)據(jù)類型都沒有改變,依然是float類型1.23,可以再次輸出結(jié)果進行查看。printf("%f",f);輸出結(jié)果是:1.230000顯式轉(zhuǎn)換再看下面的例子,分析結(jié)果是否相同。例如floatf1,f2;f1=(int)1.2+3.4;

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。