程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言實型數據使用教程

C語言實型數據使用教程

編輯:關於C語言
 

實型也稱為浮點型。實型常量也稱為實數或者浮點數。在C語言中,實數只采用十進制。它有二種形式:十進制小數形式和指數形式。

1) 十進制數形式
由數碼0~ 9和小數點組成。 例如:0.0、25.0、5.789、0.13、5.0、300.、-267.8230 等均為合法的實數。

注意,必須有小數點。

2) 指數形式
由十進制數,加階碼標志“e”或“E”以及階碼(只能為整數,可以帶符號)組成。其一般形式為:
    a E n(a為十進制數,n為十進制整數)
其值為 a*10n。如:
2.1E5 (等於2.1*105)
3.7E-2 (等於3.7*10-2)
0.5E7 (等於0.5*107)
-2.8E-2 (等於-2.8*10-2)

以下不是合法的實數:
345 (無小數點)
E7 (階碼標志E之前無數字)
-5 (無階碼標志)
53.-E3 (負號位置不對)
2.7E  (無階碼)

標准C允許浮點數使用後綴。後綴為“f”或“F”即表示該數為浮點數。如356f和356.是等價的。

【例3-5】說明了這種情況。

main(){
    printf("%f\n ",356.);
    printf("%f\n ",356);
    printf("%f\n ",356f);
}


注意,第4行在Dev C++中會報錯。
 

實型變量

1) 實型數據在內存中的存放形式
實型數據一般占4個字節(32位)內存空間。按指數形式存儲。實數3.14159在內存中的存放形式如下:


說明:

  • 小數部分占的位(bit)數愈多,數的有效數字愈多,精度愈高。
  • 指數部分占的位數愈多,則能表示的數值范圍愈大。


2) 實型變量的分類
實型變量分為:單精度(float型)、雙精度(double型)和長雙精度(long double型)三類。

在Turbo C中單精度型占4個字節(32位)內存空間,其數值范圍為3.4E-38~3.4E+38,只能提供七位有效數字。雙精度型占8 個字節(64位)內存空間,其數值范圍為1.7E-308~1.7E+308,可提供16位有效數字。
類型說明符 比特數(字節數) 有效數字 數的范圍 float 32(4) 6~7 10-37~1038          double 64(8) 15~16 10-307~10308 long double 128(16) 18~19 10-4931~104932

 

實型變量定義的格式和書寫規則與整型相同。例如:

float x,y;  /* x,y為單精度實型量 */
double a,b,c;  /* a,b,c為雙精度實型量*/


3) 實型數據的捨入誤差
由於實型變量是由有限的存儲單元組成的,因此能提供的有效數字總是有限的。如下例。

【例3-6】實型數據的捨入誤差。

main(){
    float a,b;
    a=123456.789e5;
    b=a+20;
    printf("%f\n",a);
    printf("%f\n",b);
}


注意:1.0/3*3的結果並不等於1。

【例3-7】

main(){
    float a;
    double b;
    a=33333.33333;
    b=33333.33333333333333;
    printf("%f\n%f\n",a,b);
}


從本例可以看出:

  • 由於a 是單精度浮點型,有效位數只有七位。而整數已占五位,故小數二位後之後均為無效數字。
  • b 是雙精度型,有效位為十六位。但Turbo C 規定小數後最多保留六位,其余部分四捨五入。

實型常數的類型

實型常數不分單、雙精度,都按雙精度double型處理。
 

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved